diff --git a/.github/workflows/build-docker.yml b/.github/workflows/build-docker.yml
index f199537a13..c9d81a5056 100644
--- a/.github/workflows/build-docker.yml
+++ b/.github/workflows/build-docker.yml
@@ -19,7 +19,7 @@ jobs:
name: Build Dockerfile PHP ${{ matrix.php }}
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: Build Dockerfile
run: docker build docker/${{ matrix.php }}
diff --git a/.github/workflows/compile-windows.yml b/.github/workflows/compile-windows.yml
new file mode 100644
index 0000000000..8d009de398
--- /dev/null
+++ b/.github/workflows/compile-windows.yml
@@ -0,0 +1,108 @@
+name: "[Windows] Build Phalcon"
+on: [push, pull_request]
+
+jobs:
+ windows:
+ runs-on: windows-latest
+ name: "Build Phalcon (PHP ${{matrix.php}}-${{matrix.ts}}-${{matrix.arch}})"
+ defaults:
+ run:
+ shell: cmd
+ strategy:
+ fail-fast: false
+ matrix:
+ php: ["8.0","8.1","8.2","8.3"]
+ arch: [x64,x86]
+ ts: [nts,ts]
+ experimental: [false]
+ steps:
+ - name: Checkout Phalcon
+ uses: actions/checkout@v4
+
+ - name: Extract Phalcon Version
+ shell: powershell
+ run: |
+ chcp 65001
+ $r = Select-String -Path build/phalcon/php_phalcon.h -Pattern 'PHP_PHALCON_VERSION\s+"(.*)"'
+ $s = $r.Matches[0].Groups[1]
+ echo "$s"
+ $PhalconVersion = 'PHALCON_VERSION=' + $s
+ echo $PhalconVersion >> $env:GITHUB_ENV
+
+ - name: Setup PHP
+ id: setup-php
+ uses: php/setup-php-sdk@v0.8
+ with:
+ version: ${{matrix.php}}
+ arch: ${{matrix.arch}}
+ ts: ${{matrix.ts}}
+ deps: zlib
+
+ - name: Generate build folder
+ run: |
+ cd build/
+ php gen-build.php
+
+ - name: Enable Developer Command Prompt
+ uses: ilammy/msvc-dev-cmd@v1
+ with:
+ arch: ${{matrix.arch}}
+ toolset: ${{steps.setup-php.outputs.toolset}}
+
+ - name: Phpize
+ run: |
+ cd build/phalcon/
+ phpize
+
+ - name: Configure
+ run: |
+ cd build/phalcon/
+ ./configure --enable-phalcon --with-prefix=${{steps.setup-php.outputs.prefix}}
+
+ - name: Make
+ run: |
+ cd build/phalcon/
+ nmake
+
+ - name: Define Phalcon Module Env
+ shell: powershell
+ run: |
+ chcp 65001
+
+ $dir = (Get-Location).Path + '\build\phalcon\'
+ if ('x64' -eq '${{matrix.arch}}') { $dir = $dir + 'x64\' }
+ $dir = $dir + 'Release'
+ if ('ts' -eq '${{matrix.ts}}') { $dir = $dir + '_TS' }
+ $phalconDllOpt = 'TEST_PHP_ARGS=-n -d zend_extension=' + $dir + '\php_phalcon.dll'
+ echo $phalconDllOpt >> $env:GITHUB_ENV
+
+ $artifactName = 'php_phalcon-php${{matrix.php}}'
+
+ if ('nts' -ne '${{matrix.ts}}') { $artifactName = $artifactName + '-ts' }
+ if ('nts' -eq '${{matrix.ts}}') { $artifactName = $artifactName + '-nts' }
+
+ $artifactName = $artifactName + '-windows'
+
+ if ('8.0' -eq '${{matrix.php}}') { $artifactName = $artifactName + '-vs16' }
+ if ('8.1' -eq '${{matrix.php}}') { $artifactName = $artifactName + '-vs16' }
+ if ('8.2' -eq '${{matrix.php}}') { $artifactName = $artifactName + '-vs16' }
+ if ('8.3' -eq '${{matrix.php}}') { $artifactName = $artifactName + '-vs16' }
+
+ if ('x64' -eq '${{matrix.arch}}') { $artifactName = $artifactName + '-x64' }
+
+ $phalconArtifactName = "ARTIFACT_NAME=" + $artifactName
+ echo $phalconArtifactName >> $env:GITHUB_ENV
+
+ $from = $dir + '\php_phalcon.dll'
+ $to = '.\php_phalcon.dll'
+ Copy-Item $from -Destination $to
+ $phalconArtifact = "ARTIFACT=" + '.\php_phalcon.dll'
+ echo $phalconArtifact >> $env:GITHUB_ENV
+
+ - name: Upload artifacts
+ uses: actions/upload-artifact@v4
+ with:
+ name: ${{env.ARTIFACT_NAME}}
+ path: |
+ ${{env.ARTIFACT}}
+ LICENSE.txt
\ No newline at end of file
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 17d956a2d3..ca831306cd 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -19,7 +19,7 @@ on:
env:
# All versions should be declared here
- PHALCON_VERSION: 5.6.1
+ PHALCON_VERSION: 5.6.2
ZEPHIR_PARSER_VERSION: 1.6.0
# For tests
@@ -113,7 +113,7 @@ jobs:
#- { php: '8.2', ts: 'nts', arch: 'x64', name: 'windows2019-vs16', os: 'windows-2019', compiler: 'vs16' }
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: Setup platform specific environment
shell: pwsh
@@ -271,7 +271,7 @@ jobs:
php: [ '8.0', '8.1', '8.2', '8.3' ]
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: Setup PHP
uses: shivammathur/setup-php@v2
@@ -381,7 +381,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: Get the release version
id: get-version
diff --git a/CHANGELOG-5.0.md b/CHANGELOG-5.0.md
index 2803c8984b..dbed6fe50b 100644
--- a/CHANGELOG-5.0.md
+++ b/CHANGELOG-5.0.md
@@ -1,5 +1,18 @@
# Changelog
+## [5.6.2](https://github.com/phalcon/cphalcon/releases/tag/v5.6.1) (2024-03-14)
+
+### Changed
+
+- Changed `Phalcon\Mvc\View\Engine\Volt\Compiler::filter` to use the helper with `upper` and `lower` for UTF-8 characters [#16543](https://github.com/phalcon/cphalcon/issues/16543)
+- Changed `Phalcon\Di\AbstractInjectionAware` to extend `stdClass` for PHP 8.2 deprecation warnings [#16543](https://github.com/phalcon/cphalcon/issues/16543)
+
+### Added
+
+### Fixed
+
+### Removed
+
## [5.6.1](https://github.com/phalcon/cphalcon/releases/tag/v5.6.1) (2024-02-08)
### Changed
diff --git a/build/phalcon/phalcon.zep.c b/build/phalcon/phalcon.zep.c
index 9f7e1f5037..a513cf7b76 100644
--- a/build/phalcon/phalcon.zep.c
+++ b/build/phalcon/phalcon.zep.c
@@ -33142,7 +33142,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns)
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:]]+(\\[\\])?$/");
+ ZVAL_STRING(&_52$$38, "/^'|'?::[[:alnum:][:space:]]+$/");
ZEPHIR_INIT_NVAR(&_53$$38);
ZVAL_STRING(&_53$$38, "");
ZEPHIR_CALL_FUNCTION(&_54$$38, "preg_replace", &_55, 41, &_52$$38, &_53$$38, &_51$$38);
@@ -33440,7 +33440,7 @@ static PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns)
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:]]+(\\[\\])?$/");
+ ZVAL_STRING(&_111$$76, "/^'|'?::[[:alnum:][:space:]]+$/");
ZEPHIR_INIT_NVAR(&_112$$76);
ZVAL_STRING(&_112$$76, "");
ZEPHIR_CALL_FUNCTION(&_113$$76, "preg_replace", &_55, 41, &_111$$76, &_112$$76, &_110$$76);
@@ -72774,10 +72774,11 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, getFinalPath)
static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveFilter)
{
+ zend_bool _21$$30, _26$$41;
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, _20, _21, _22, _23, _0$$5, _1$$5, _2$$5, _3$$5, _8$$9, _10$$11, _11$$11, _12$$11, _13$$11, _14$$24, _15$$24, _16$$24, _17$$24, _18$$24, _19$$24;
+ zval *filter_param = NULL, *left_param = NULL, code, type, functionName, name, file, line, extensions, filters, funcArguments, arguments, definition, _6, _30, _31, _32, _33, _0$$5, _1$$5, _2$$5, _3$$5, _8$$9, _10$$11, _11$$11, _12$$11, _13$$11, _14$$24, _15$$24, _16$$24, _17$$24, _18$$24, _19$$24, _20$$30, _22$$30, _23$$30, _24$$30, _25$$41, _27$$41, _28$$41, _29$$41;
zval filter, _4$$7, _5$$7, _7$$9, _9$$14;
zval *this_ptr = getThis();
@@ -72798,10 +72799,10 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveFilter)
ZVAL_UNDEF(&arguments);
ZVAL_UNDEF(&definition);
ZVAL_UNDEF(&_6);
- ZVAL_UNDEF(&_20);
- ZVAL_UNDEF(&_21);
- ZVAL_UNDEF(&_22);
- ZVAL_UNDEF(&_23);
+ ZVAL_UNDEF(&_30);
+ ZVAL_UNDEF(&_31);
+ ZVAL_UNDEF(&_32);
+ ZVAL_UNDEF(&_33);
ZVAL_UNDEF(&_0$$5);
ZVAL_UNDEF(&_1$$5);
ZVAL_UNDEF(&_2$$5);
@@ -72817,6 +72818,14 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveFilter)
ZVAL_UNDEF(&_17$$24);
ZVAL_UNDEF(&_18$$24);
ZVAL_UNDEF(&_19$$24);
+ ZVAL_UNDEF(&_20$$30);
+ ZVAL_UNDEF(&_22$$30);
+ ZVAL_UNDEF(&_23$$30);
+ ZVAL_UNDEF(&_24$$30);
+ ZVAL_UNDEF(&_25$$41);
+ ZVAL_UNDEF(&_27$$41);
+ ZVAL_UNDEF(&_28$$41);
+ ZVAL_UNDEF(&_29$$41);
ZVAL_UNDEF(&left);
ZEND_PARSE_PARAMETERS_START(2, 2)
Z_PARAM_ARRAY(filter)
@@ -73000,8 +73009,23 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveFilter)
RETURN_MM();
}
if (ZEPHIR_IS_STRING(&name, "lower") || ZEPHIR_IS_STRING(&name, "lowercase")) {
- ZEPHIR_CONCAT_SVS(return_value, "strtolower(", &arguments, ")");
- RETURN_MM();
+ zephir_read_property(&_20$$30, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY);
+ _21$$30 = Z_TYPE_P(&_20$$30) != IS_NULL;
+ if (_21$$30) {
+ zephir_read_property(&_22$$30, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY);
+ ZEPHIR_INIT_VAR(&_24$$30);
+ ZVAL_STRING(&_24$$30, "helper");
+ ZEPHIR_CALL_METHOD(&_23$$30, &_22$$30, "has", NULL, 0, &_24$$30);
+ zephir_check_call_status();
+ _21$$30 = ZEPHIR_IS_TRUE_IDENTICAL(&_23$$30);
+ }
+ if (_21$$30) {
+ ZEPHIR_CONCAT_SVS(return_value, "$this->helper->lower(", &arguments, ")");
+ RETURN_MM();
+ } else {
+ ZEPHIR_CONCAT_SVS(return_value, "strtolower(", &arguments, ")");
+ RETURN_MM();
+ }
}
if (ZEPHIR_IS_STRING(&name, "right_trim")) {
ZEPHIR_CONCAT_SVS(return_value, "rtrim(", &arguments, ")");
@@ -73036,8 +73060,23 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveFilter)
RETURN_MM();
}
if (ZEPHIR_IS_STRING(&name, "upper") || ZEPHIR_IS_STRING(&name, "uppercase")) {
- ZEPHIR_CONCAT_SVS(return_value, "strtoupper(", &arguments, ")");
- RETURN_MM();
+ zephir_read_property(&_25$$41, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY);
+ _26$$41 = Z_TYPE_P(&_25$$41) != IS_NULL;
+ if (_26$$41) {
+ zephir_read_property(&_27$$41, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY);
+ ZEPHIR_INIT_VAR(&_29$$41);
+ ZVAL_STRING(&_29$$41, "helper");
+ ZEPHIR_CALL_METHOD(&_28$$41, &_27$$41, "has", NULL, 0, &_29$$41);
+ zephir_check_call_status();
+ _26$$41 = ZEPHIR_IS_TRUE_IDENTICAL(&_28$$41);
+ }
+ if (_26$$41) {
+ ZEPHIR_CONCAT_SVS(return_value, "$this->helper->upper(", &arguments, ")");
+ RETURN_MM();
+ } else {
+ ZEPHIR_CONCAT_SVS(return_value, "strtoupper(", &arguments, ")");
+ RETURN_MM();
+ }
}
if (ZEPHIR_IS_STRING(&name, "url_encode")) {
ZEPHIR_CONCAT_SVS(return_value, "urlencode(", &arguments, ")");
@@ -73045,15 +73084,15 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveFilter)
}
} while(0);
- ZEPHIR_INIT_VAR(&_20);
- object_init_ex(&_20, phalcon_mvc_view_engine_volt_exception_ce);
- zephir_array_fetch_string(&_21, &filter, SL("file"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2579);
- zephir_array_fetch_string(&_22, &filter, SL("line"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2580);
- ZEPHIR_INIT_VAR(&_23);
- ZEPHIR_CONCAT_SVSVSV(&_23, "Unknown filter \"", &name, "\" in ", &_21, " on line ", &_22);
- ZEPHIR_CALL_METHOD(NULL, &_20, "__construct", NULL, 504, &_23);
+ ZEPHIR_INIT_VAR(&_30);
+ object_init_ex(&_30, phalcon_mvc_view_engine_volt_exception_ce);
+ zephir_array_fetch_string(&_31, &filter, SL("file"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2587);
+ zephir_array_fetch_string(&_32, &filter, SL("line"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2588);
+ ZEPHIR_INIT_VAR(&_33);
+ ZEPHIR_CONCAT_SVSVSV(&_33, "Unknown filter \"", &name, "\" in ", &_31, " on line ", &_32);
+ ZEPHIR_CALL_METHOD(NULL, &_30, "__construct", NULL, 504, &_33);
zephir_check_call_status();
- zephir_throw_exception_debug(&_20, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2580);
+ zephir_throw_exception_debug(&_30, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2588);
ZEPHIR_MM_RESTORE();
return;
}
@@ -73195,26 +73234,26 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, statementList)
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", 2866);
+ zephir_is_iterable(&statements, 0, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2874);
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", 2620);
+ ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "Corrupted statement", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2628);
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", 2628);
- zephir_array_fetch_string(&_6$$7, &statement, SL("line"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2628);
+ zephir_array_fetch_string(&_5$$7, &statement, SL("file"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2636);
+ zephir_array_fetch_string(&_6$$7, &statement, SL("line"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2636);
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, 504, &_7$$7, &statement);
zephir_check_call_status();
- zephir_throw_exception_debug(&_4$$7, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2630);
+ zephir_throw_exception_debug(&_4$$7, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2638);
ZEPHIR_MM_RESTORE();
return;
}
@@ -73232,10 +73271,10 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, statementList)
}
}
ZEPHIR_OBS_NVAR(&type);
- zephir_array_fetch_string(&type, &statement, SL("type"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2656);
+ zephir_array_fetch_string(&type, &statement, SL("type"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2664);
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", 2664);
+ zephir_array_fetch_string(&_12$$10, &statement, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2672);
zephir_concat_self(&compilation, &_12$$10);
break;
}
@@ -73305,7 +73344,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, statementList)
}
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", 2711);
+ zephir_array_fetch_string(&blockName, &statement, SL("name"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2719);
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);
@@ -73316,7 +73355,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, statementList)
array_init(&blocks);
}
if (Z_TYPE_P(&compilation) != IS_NULL) {
- zephir_array_append(&blocks, &compilation, PH_SEPARATE, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2726);
+ zephir_array_append(&blocks, &compilation, PH_SEPARATE, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2734);
ZEPHIR_INIT_NVAR(&compilation);
ZVAL_NULL(&compilation);
}
@@ -73338,8 +73377,8 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, statementList)
}
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", 2751);
- zephir_array_fetch_string(&_36$$25, &path, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2755);
+ zephir_array_fetch_string(&path, &statement, SL("path"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2759);
+ zephir_array_fetch_string(&_36$$25, &path, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2763);
ZEPHIR_CALL_METHOD(&finalPath, this_ptr, "getfinalpath", &_37, 0, &_36$$25);
zephir_check_call_status();
ZEPHIR_INIT_NVAR(&extended);
@@ -73435,13 +73474,13 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, statementList)
}
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", 2857);
- zephir_array_fetch_string(&_58$$37, &statement, SL("line"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2858);
+ zephir_array_fetch_string(&_57$$37, &statement, SL("file"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2865);
+ zephir_array_fetch_string(&_58$$37, &statement, SL("line"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2866);
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, 504, &_59$$37);
zephir_check_call_status();
- zephir_throw_exception_debug(&_56$$37, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2858);
+ zephir_throw_exception_debug(&_56$$37, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2866);
ZEPHIR_MM_RESTORE();
return;
} while(0);
@@ -73459,19 +73498,19 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, statementList)
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", 2620);
+ ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "Corrupted statement", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2628);
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", 2628);
- zephir_array_fetch_string(&_62$$40, &statement, SL("line"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2628);
+ zephir_array_fetch_string(&_61$$40, &statement, SL("file"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2636);
+ zephir_array_fetch_string(&_62$$40, &statement, SL("line"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2636);
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, 504, &_63$$40, &statement);
zephir_check_call_status();
- zephir_throw_exception_debug(&_60$$40, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2630);
+ zephir_throw_exception_debug(&_60$$40, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2638);
ZEPHIR_MM_RESTORE();
return;
}
@@ -73489,10 +73528,10 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, statementList)
}
}
ZEPHIR_OBS_NVAR(&type);
- zephir_array_fetch_string(&type, &statement, SL("type"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2656);
+ zephir_array_fetch_string(&type, &statement, SL("type"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2664);
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", 2664);
+ zephir_array_fetch_string(&_66$$43, &statement, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2672);
zephir_concat_self(&compilation, &_66$$43);
break;
}
@@ -73562,7 +73601,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, statementList)
}
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", 2711);
+ zephir_array_fetch_string(&blockName, &statement, SL("name"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2719);
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);
@@ -73573,7 +73612,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, statementList)
array_init(&blocks);
}
if (Z_TYPE_P(&compilation) != IS_NULL) {
- zephir_array_append(&blocks, &compilation, PH_SEPARATE, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2726);
+ zephir_array_append(&blocks, &compilation, PH_SEPARATE, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2734);
ZEPHIR_INIT_NVAR(&compilation);
ZVAL_NULL(&compilation);
}
@@ -73595,8 +73634,8 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, statementList)
}
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", 2751);
- zephir_array_fetch_string(&_82$$58, &path, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2755);
+ zephir_array_fetch_string(&path, &statement, SL("path"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2759);
+ zephir_array_fetch_string(&_82$$58, &path, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2763);
ZEPHIR_CALL_METHOD(&finalPath, this_ptr, "getfinalpath", &_37, 0, &_82$$58);
zephir_check_call_status();
ZEPHIR_INIT_NVAR(&extended);
@@ -73692,13 +73731,13 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, statementList)
}
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", 2857);
- zephir_array_fetch_string(&_96$$70, &statement, SL("line"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2858);
+ zephir_array_fetch_string(&_95$$70, &statement, SL("file"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2865);
+ zephir_array_fetch_string(&_96$$70, &statement, SL("line"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2866);
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, 504, &_97$$70);
zephir_check_call_status();
- zephir_throw_exception_debug(&_94$$70, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2858);
+ zephir_throw_exception_debug(&_94$$70, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2866);
ZEPHIR_MM_RESTORE();
return;
} while(0);
@@ -73744,7 +73783,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, statementListOrExtends)
}
isStatementList = 1;
if (!(zephir_array_isset_string(statements, SL("type")))) {
- zephir_is_iterable(statements, 0, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2915);
+ zephir_is_iterable(statements, 0, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2923);
if (Z_TYPE_P(statements) == IS_ARRAY) {
ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(statements), _0$$4)
{
@@ -73817,7 +73856,7 @@ static PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, isTagFactory)
_0$$6 = zephir_array_isset_string(&left, SL("name"));
if (_0$$6) {
zephir_memory_observe(&_1$$6);
- zephir_array_fetch_string(&_1$$6, &left, SL("name"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2952);
+ zephir_array_fetch_string(&_1$$6, &left, SL("name"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2960);
_0$$6 = Z_TYPE_P(&_1$$6) == IS_ARRAY;
}
if (_0$$6) {
@@ -151017,7 +151056,7 @@ ZEPHIR_DOC_METHOD(Phalcon_Storage_Serializer_SerializerInterface, setData);
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);
+ ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Di, AbstractInjectionAware, phalcon, di_abstractinjectionaware, zend_standard_class_def, 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);
@@ -183902,7 +183941,7 @@ static PHP_METHOD(Phalcon_Support_Version, getVersion)
ZVAL_LONG(&_0, 6);
zephir_array_fast_append(return_value, &_0);
ZEPHIR_INIT_NVAR(&_0);
- ZVAL_LONG(&_0, 1);
+ ZVAL_LONG(&_0, 2);
zephir_array_fast_append(return_value, &_0);
ZEPHIR_INIT_NVAR(&_0);
ZVAL_LONG(&_0, 4);
diff --git a/build/phalcon/php_phalcon.h b/build/phalcon/php_phalcon.h
index 3cc2ddee2b..7579e66879 100644
--- a/build/phalcon/php_phalcon.h
+++ b/build/phalcon/php_phalcon.h
@@ -103,7 +103,7 @@ typedef zend_function zephir_fcall_cache_entry;
#define PHP_PHALCON_NAME "phalcon"
-#define PHP_PHALCON_VERSION "5.6.1"
+#define PHP_PHALCON_VERSION "5.6.2"
#define PHP_PHALCON_EXTNAME "phalcon"
#define PHP_PHALCON_AUTHOR "Phalcon Team and contributors"
#define PHP_PHALCON_ZEPVERSION "0.18.0-$Id$"
diff --git a/composer.lock b/composer.lock
index c8a0895f07..51316f259c 100644
--- a/composer.lock
+++ b/composer.lock
@@ -1019,16 +1019,16 @@
},
{
"name": "composer/pcre",
- "version": "3.1.1",
+ "version": "3.1.2",
"source": {
"type": "git",
"url": "https://github.com/composer/pcre.git",
- "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9"
+ "reference": "4775f35b2d70865807c89d32c8e7385b86eb0ace"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/pcre/zipball/00104306927c7a0919b4ced2aaa6782c1e61a3c9",
- "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9",
+ "url": "https://api.github.com/repos/composer/pcre/zipball/4775f35b2d70865807c89d32c8e7385b86eb0ace",
+ "reference": "4775f35b2d70865807c89d32c8e7385b86eb0ace",
"shasum": ""
},
"require": {
@@ -1070,7 +1070,7 @@
],
"support": {
"issues": "https://github.com/composer/pcre/issues",
- "source": "https://github.com/composer/pcre/tree/3.1.1"
+ "source": "https://github.com/composer/pcre/tree/3.1.2"
},
"funding": [
{
@@ -1086,7 +1086,7 @@
"type": "tidelift"
}
],
- "time": "2023-10-11T07:11:09+00:00"
+ "time": "2024-03-07T15:38:35+00:00"
},
{
"name": "composer/semver",
@@ -1553,16 +1553,16 @@
},
{
"name": "friendsofphp/php-cs-fixer",
- "version": "v3.49.0",
+ "version": "v3.51.0",
"source": {
"type": "git",
"url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git",
- "reference": "8742f7aa6f72a399688b65e4f58992c2d4681fc2"
+ "reference": "127fa74f010da99053e3f5b62672615b72dd6efd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/8742f7aa6f72a399688b65e4f58992c2d4681fc2",
- "reference": "8742f7aa6f72a399688b65e4f58992c2d4681fc2",
+ "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/127fa74f010da99053e3f5b62672615b72dd6efd",
+ "reference": "127fa74f010da99053e3f5b62672615b72dd6efd",
"shasum": ""
},
"require": {
@@ -1572,7 +1572,7 @@
"ext-json": "*",
"ext-tokenizer": "*",
"php": "^7.4 || ^8.0",
- "sebastian/diff": "^4.0 || ^5.0",
+ "sebastian/diff": "^4.0 || ^5.0 || ^6.0",
"symfony/console": "^5.4 || ^6.0 || ^7.0",
"symfony/event-dispatcher": "^5.4 || ^6.0 || ^7.0",
"symfony/filesystem": "^5.4 || ^6.0 || ^7.0",
@@ -1593,7 +1593,8 @@
"php-cs-fixer/accessible-object": "^1.1",
"php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.4",
"php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.4",
- "phpunit/phpunit": "^9.6 || ^10.5.5",
+ "phpunit/phpunit": "^9.6 || ^10.5.5 || ^11.0.2",
+ "symfony/var-dumper": "^5.4 || ^6.0 || ^7.0",
"symfony/yaml": "^5.4 || ^6.0 || ^7.0"
},
"suggest": {
@@ -1632,7 +1633,7 @@
],
"support": {
"issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues",
- "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.49.0"
+ "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.51.0"
},
"funding": [
{
@@ -1640,7 +1641,7 @@
"type": "github"
}
],
- "time": "2024-02-02T00:41:40+00:00"
+ "time": "2024-02-28T19:50:06+00:00"
},
{
"name": "graham-campbell/result-type",
@@ -2349,16 +2350,16 @@
},
{
"name": "phalcon/ide-stubs",
- "version": "v5.6.0",
+ "version": "v5.6.1",
"source": {
"type": "git",
"url": "https://github.com/phalcon/ide-stubs.git",
- "reference": "0593372dcf90d311f5f861a67b0438cc44d29a23"
+ "reference": "59be72bc524967f522ad333f8b0d0017403395e3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phalcon/ide-stubs/zipball/0593372dcf90d311f5f861a67b0438cc44d29a23",
- "reference": "0593372dcf90d311f5f861a67b0438cc44d29a23",
+ "url": "https://api.github.com/repos/phalcon/ide-stubs/zipball/59be72bc524967f522ad333f8b0d0017403395e3",
+ "reference": "59be72bc524967f522ad333f8b0d0017403395e3",
"shasum": ""
},
"require": {
@@ -2412,7 +2413,7 @@
"type": "open_collective"
}
],
- "time": "2024-01-09T23:54:03+00:00"
+ "time": "2024-02-08T18:31:12+00:00"
},
{
"name": "phalcon/zephir",
@@ -2503,20 +2504,21 @@
},
{
"name": "phar-io/manifest",
- "version": "2.0.3",
+ "version": "2.0.4",
"source": {
"type": "git",
"url": "https://github.com/phar-io/manifest.git",
- "reference": "97803eca37d319dfa7826cc2437fc020857acb53"
+ "reference": "54750ef60c58e43759730615a392c31c80e23176"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53",
- "reference": "97803eca37d319dfa7826cc2437fc020857acb53",
+ "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176",
+ "reference": "54750ef60c58e43759730615a392c31c80e23176",
"shasum": ""
},
"require": {
"ext-dom": "*",
+ "ext-libxml": "*",
"ext-phar": "*",
"ext-xmlwriter": "*",
"phar-io/version": "^3.0.1",
@@ -2557,9 +2559,15 @@
"description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
"support": {
"issues": "https://github.com/phar-io/manifest/issues",
- "source": "https://github.com/phar-io/manifest/tree/2.0.3"
+ "source": "https://github.com/phar-io/manifest/tree/2.0.4"
},
- "time": "2021-07-20T11:28:43+00:00"
+ "funding": [
+ {
+ "url": "https://github.com/theseer",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-03T12:33:53+00:00"
},
{
"name": "phar-io/version",
@@ -2724,21 +2732,21 @@
},
{
"name": "phpdocumentor/type-resolver",
- "version": "1.8.0",
+ "version": "1.8.2",
"source": {
"type": "git",
"url": "https://github.com/phpDocumentor/TypeResolver.git",
- "reference": "fad452781b3d774e3337b0c0b245dd8e5a4455fc"
+ "reference": "153ae662783729388a584b4361f2545e4d841e3c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/fad452781b3d774e3337b0c0b245dd8e5a4455fc",
- "reference": "fad452781b3d774e3337b0c0b245dd8e5a4455fc",
+ "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/153ae662783729388a584b4361f2545e4d841e3c",
+ "reference": "153ae662783729388a584b4361f2545e4d841e3c",
"shasum": ""
},
"require": {
"doctrine/deprecations": "^1.0",
- "php": "^7.4 || ^8.0",
+ "php": "^7.3 || ^8.0",
"phpdocumentor/reflection-common": "^2.0",
"phpstan/phpdoc-parser": "^1.13"
},
@@ -2776,9 +2784,9 @@
"description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
"support": {
"issues": "https://github.com/phpDocumentor/TypeResolver/issues",
- "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.8.0"
+ "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.8.2"
},
- "time": "2024-01-11T11:49:22+00:00"
+ "time": "2024-02-23T11:10:43+00:00"
},
{
"name": "phpoption/phpoption",
@@ -2857,16 +2865,16 @@
},
{
"name": "phpstan/phpdoc-parser",
- "version": "1.25.0",
+ "version": "1.26.0",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpdoc-parser.git",
- "reference": "bd84b629c8de41aa2ae82c067c955e06f1b00240"
+ "reference": "231e3186624c03d7e7c890ec662b81e6b0405227"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/bd84b629c8de41aa2ae82c067c955e06f1b00240",
- "reference": "bd84b629c8de41aa2ae82c067c955e06f1b00240",
+ "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/231e3186624c03d7e7c890ec662b81e6b0405227",
+ "reference": "231e3186624c03d7e7c890ec662b81e6b0405227",
"shasum": ""
},
"require": {
@@ -2898,22 +2906,22 @@
"description": "PHPDoc parser with support for nullable, intersection and generic types",
"support": {
"issues": "https://github.com/phpstan/phpdoc-parser/issues",
- "source": "https://github.com/phpstan/phpdoc-parser/tree/1.25.0"
+ "source": "https://github.com/phpstan/phpdoc-parser/tree/1.26.0"
},
- "time": "2024-01-04T17:06:16+00:00"
+ "time": "2024-02-23T16:05:55+00:00"
},
{
"name": "phpunit/php-code-coverage",
- "version": "9.2.30",
+ "version": "9.2.31",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "ca2bd87d2f9215904682a9cb9bb37dda98e76089"
+ "reference": "48c34b5d8d983006bd2adc2d0de92963b9155965"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ca2bd87d2f9215904682a9cb9bb37dda98e76089",
- "reference": "ca2bd87d2f9215904682a9cb9bb37dda98e76089",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/48c34b5d8d983006bd2adc2d0de92963b9155965",
+ "reference": "48c34b5d8d983006bd2adc2d0de92963b9155965",
"shasum": ""
},
"require": {
@@ -2970,7 +2978,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
"security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
- "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.30"
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.31"
},
"funding": [
{
@@ -2978,7 +2986,7 @@
"type": "github"
}
],
- "time": "2023-12-22T06:47:57+00:00"
+ "time": "2024-03-02T06:37:42+00:00"
},
{
"name": "phpunit/php-file-iterator",
@@ -3223,16 +3231,16 @@
},
{
"name": "phpunit/phpunit",
- "version": "9.6.16",
+ "version": "9.6.17",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "3767b2c56ce02d01e3491046f33466a1ae60a37f"
+ "reference": "1a156980d78a6666721b7e8e8502fe210b587fcd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3767b2c56ce02d01e3491046f33466a1ae60a37f",
- "reference": "3767b2c56ce02d01e3491046f33466a1ae60a37f",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/1a156980d78a6666721b7e8e8502fe210b587fcd",
+ "reference": "1a156980d78a6666721b7e8e8502fe210b587fcd",
"shasum": ""
},
"require": {
@@ -3306,7 +3314,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.16"
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.17"
},
"funding": [
{
@@ -3322,7 +3330,7 @@
"type": "tidelift"
}
],
- "time": "2024-01-19T07:03:14+00:00"
+ "time": "2024-02-23T13:14:51+00:00"
},
{
"name": "predis/predis",
@@ -3749,16 +3757,16 @@
},
{
"name": "sebastian/cli-parser",
- "version": "1.0.1",
+ "version": "1.0.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/cli-parser.git",
- "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2"
+ "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2",
- "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2",
+ "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/2b56bea83a09de3ac06bb18b92f068e60cc6f50b",
+ "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b",
"shasum": ""
},
"require": {
@@ -3793,7 +3801,7 @@
"homepage": "https://github.com/sebastianbergmann/cli-parser",
"support": {
"issues": "https://github.com/sebastianbergmann/cli-parser/issues",
- "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1"
+ "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.2"
},
"funding": [
{
@@ -3801,7 +3809,7 @@
"type": "github"
}
],
- "time": "2020-09-28T06:08:49+00:00"
+ "time": "2024-03-02T06:27:43+00:00"
},
{
"name": "sebastian/code-unit",
@@ -4047,16 +4055,16 @@
},
{
"name": "sebastian/diff",
- "version": "4.0.5",
+ "version": "4.0.6",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131"
+ "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/74be17022044ebaaecfdf0c5cd504fc9cd5a7131",
- "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/ba01945089c3a293b01ba9badc29ad55b106b0bc",
+ "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc",
"shasum": ""
},
"require": {
@@ -4101,7 +4109,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/diff/issues",
- "source": "https://github.com/sebastianbergmann/diff/tree/4.0.5"
+ "source": "https://github.com/sebastianbergmann/diff/tree/4.0.6"
},
"funding": [
{
@@ -4109,7 +4117,7 @@
"type": "github"
}
],
- "time": "2023-05-07T05:35:17+00:00"
+ "time": "2024-03-02T06:30:58+00:00"
},
{
"name": "sebastian/environment",
@@ -4176,16 +4184,16 @@
},
{
"name": "sebastian/exporter",
- "version": "4.0.5",
+ "version": "4.0.6",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d"
+ "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d",
- "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/78c00df8f170e02473b682df15bfcdacc3d32d72",
+ "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72",
"shasum": ""
},
"require": {
@@ -4241,7 +4249,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/exporter/issues",
- "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5"
+ "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.6"
},
"funding": [
{
@@ -4249,20 +4257,20 @@
"type": "github"
}
],
- "time": "2022-09-14T06:03:37+00:00"
+ "time": "2024-03-02T06:33:00+00:00"
},
{
"name": "sebastian/global-state",
- "version": "5.0.6",
+ "version": "5.0.7",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/global-state.git",
- "reference": "bde739e7565280bda77be70044ac1047bc007e34"
+ "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bde739e7565280bda77be70044ac1047bc007e34",
- "reference": "bde739e7565280bda77be70044ac1047bc007e34",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9",
+ "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9",
"shasum": ""
},
"require": {
@@ -4305,7 +4313,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/global-state/issues",
- "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.6"
+ "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.7"
},
"funding": [
{
@@ -4313,7 +4321,7 @@
"type": "github"
}
],
- "time": "2023-08-02T09:26:13+00:00"
+ "time": "2024-03-02T06:35:11+00:00"
},
{
"name": "sebastian/lines-of-code",
@@ -4600,6 +4608,7 @@
"type": "github"
}
],
+ "abandoned": true,
"time": "2020-09-28T06:45:17+00:00"
},
{
@@ -4776,16 +4785,16 @@
},
{
"name": "squizlabs/php_codesniffer",
- "version": "3.8.1",
+ "version": "3.9.0",
"source": {
"type": "git",
"url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git",
- "reference": "14f5fff1e64118595db5408e946f3a22c75807f7"
+ "reference": "d63cee4890a8afaf86a22e51ad4d97c91dd4579b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/14f5fff1e64118595db5408e946f3a22c75807f7",
- "reference": "14f5fff1e64118595db5408e946f3a22c75807f7",
+ "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/d63cee4890a8afaf86a22e51ad4d97c91dd4579b",
+ "reference": "d63cee4890a8afaf86a22e51ad4d97c91dd4579b",
"shasum": ""
},
"require": {
@@ -4852,7 +4861,7 @@
"type": "open_collective"
}
],
- "time": "2024-01-11T20:47:48+00:00"
+ "time": "2024-02-16T15:06:51+00:00"
},
{
"name": "symfony/browser-kit",
@@ -4928,16 +4937,16 @@
},
{
"name": "symfony/console",
- "version": "v5.4.35",
+ "version": "v5.4.36",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "dbdf6adcb88d5f83790e1efb57ef4074309d3931"
+ "reference": "39f75d9d73d0c11952fdcecf4877b4d0f62a8f6e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/dbdf6adcb88d5f83790e1efb57ef4074309d3931",
- "reference": "dbdf6adcb88d5f83790e1efb57ef4074309d3931",
+ "url": "https://api.github.com/repos/symfony/console/zipball/39f75d9d73d0c11952fdcecf4877b4d0f62a8f6e",
+ "reference": "39f75d9d73d0c11952fdcecf4877b4d0f62a8f6e",
"shasum": ""
},
"require": {
@@ -5007,7 +5016,7 @@
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v5.4.35"
+ "source": "https://github.com/symfony/console/tree/v5.4.36"
},
"funding": [
{
@@ -5023,7 +5032,7 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T14:28:09+00:00"
+ "time": "2024-02-20T16:33:57+00:00"
},
{
"name": "symfony/css-selector",
@@ -6507,16 +6516,16 @@
},
{
"name": "theseer/tokenizer",
- "version": "1.2.2",
+ "version": "1.2.3",
"source": {
"type": "git",
"url": "https://github.com/theseer/tokenizer.git",
- "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96"
+ "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b2ad5003ca10d4ee50a12da31de12a5774ba6b96",
- "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96",
+ "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
+ "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
"shasum": ""
},
"require": {
@@ -6545,7 +6554,7 @@
"description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
"support": {
"issues": "https://github.com/theseer/tokenizer/issues",
- "source": "https://github.com/theseer/tokenizer/tree/1.2.2"
+ "source": "https://github.com/theseer/tokenizer/tree/1.2.3"
},
"funding": [
{
@@ -6553,7 +6562,7 @@
"type": "github"
}
],
- "time": "2023-11-20T00:12:19+00:00"
+ "time": "2024-03-03T12:36:25+00:00"
},
{
"name": "twig/twig",
@@ -6635,16 +6644,16 @@
},
{
"name": "vimeo/psalm",
- "version": "5.21.1",
+ "version": "5.23.1",
"source": {
"type": "git",
"url": "https://github.com/vimeo/psalm.git",
- "reference": "8c473e2437be8b6a8fd8f630f0f11a16b114c494"
+ "reference": "8471a896ccea3526b26d082f4461eeea467f10a4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/vimeo/psalm/zipball/8c473e2437be8b6a8fd8f630f0f11a16b114c494",
- "reference": "8c473e2437be8b6a8fd8f630f0f11a16b114c494",
+ "url": "https://api.github.com/repos/vimeo/psalm/zipball/8471a896ccea3526b26d082f4461eeea467f10a4",
+ "reference": "8471a896ccea3526b26d082f4461eeea467f10a4",
"shasum": ""
},
"require": {
@@ -6667,7 +6676,7 @@
"netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0",
"nikic/php-parser": "^4.16",
"php": "^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0",
- "sebastian/diff": "^4.0 || ^5.0",
+ "sebastian/diff": "^4.0 || ^5.0 || ^6.0",
"spatie/array-to-xml": "^2.17.0 || ^3.0",
"symfony/console": "^4.1.6 || ^5.0 || ^6.0 || ^7.0",
"symfony/filesystem": "^5.4 || ^6.0 || ^7.0"
@@ -6741,7 +6750,7 @@
"issues": "https://github.com/vimeo/psalm/issues",
"source": "https://github.com/vimeo/psalm"
},
- "time": "2024-02-01T01:04:32+00:00"
+ "time": "2024-03-11T20:33:46+00:00"
},
{
"name": "vlucas/phpdotenv",
diff --git a/config.json b/config.json
index d8bc1b075c..2e9d8db044 100644
--- a/config.json
+++ b/config.json
@@ -3,7 +3,7 @@
"name": "phalcon",
"description": "Phalcon is a full stack PHP framework, delivered as a PHP extension, offering lower resource consumption and high performance.",
"author": "Phalcon Team and contributors",
- "version": "5.6.1",
+ "version": "5.6.2",
"verbose": false,
"stubs": {
"path": "ide\/%version%\/%namespace%\/",
diff --git a/ext/phalcon/db/adapter/pdo/postgresql.zep.c b/ext/phalcon/db/adapter/pdo/postgresql.zep.c
index 3b1bb32e3b..c2130b76a2 100644
--- a/ext/phalcon/db/adapter/pdo/postgresql.zep.c
+++ b/ext/phalcon/db/adapter/pdo/postgresql.zep.c
@@ -739,7 +739,7 @@ PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns)
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:]]+(\\[\\])?$/");
+ ZVAL_STRING(&_52$$38, "/^'|'?::[[:alnum:][:space:]]+$/");
ZEPHIR_INIT_NVAR(&_53$$38);
ZVAL_STRING(&_53$$38, "");
ZEPHIR_CALL_FUNCTION(&_54$$38, "preg_replace", &_55, 41, &_52$$38, &_53$$38, &_51$$38);
@@ -1037,7 +1037,7 @@ PHP_METHOD(Phalcon_Db_Adapter_Pdo_Postgresql, describeColumns)
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:]]+(\\[\\])?$/");
+ ZVAL_STRING(&_111$$76, "/^'|'?::[[:alnum:][:space:]]+$/");
ZEPHIR_INIT_NVAR(&_112$$76);
ZVAL_STRING(&_112$$76, "");
ZEPHIR_CALL_FUNCTION(&_113$$76, "preg_replace", &_55, 41, &_111$$76, &_112$$76, &_110$$76);
diff --git a/ext/phalcon/di/abstractinjectionaware.zep.c b/ext/phalcon/di/abstractinjectionaware.zep.c
index 32833eff69..1e7240a785 100644
--- a/ext/phalcon/di/abstractinjectionaware.zep.c
+++ b/ext/phalcon/di/abstractinjectionaware.zep.c
@@ -29,7 +29,7 @@
*/
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);
+ ZEPHIR_REGISTER_CLASS_EX(Phalcon\\Di, AbstractInjectionAware, phalcon, di_abstractinjectionaware, zend_standard_class_def, phalcon_di_abstractinjectionaware_method_entry, ZEND_ACC_EXPLICIT_ABSTRACT_CLASS);
/**
* Dependency Injector
diff --git a/ext/phalcon/mvc/view/engine/volt/compiler.zep.c b/ext/phalcon/mvc/view/engine/volt/compiler.zep.c
index e1bf1ac70b..7f98fc664c 100644
--- a/ext/phalcon/mvc/view/engine/volt/compiler.zep.c
+++ b/ext/phalcon/mvc/view/engine/volt/compiler.zep.c
@@ -3781,10 +3781,11 @@ PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, getFinalPath)
*/
PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveFilter)
{
+ zend_bool _21$$30, _26$$41;
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, _20, _21, _22, _23, _0$$5, _1$$5, _2$$5, _3$$5, _8$$9, _10$$11, _11$$11, _12$$11, _13$$11, _14$$24, _15$$24, _16$$24, _17$$24, _18$$24, _19$$24;
+ zval *filter_param = NULL, *left_param = NULL, code, type, functionName, name, file, line, extensions, filters, funcArguments, arguments, definition, _6, _30, _31, _32, _33, _0$$5, _1$$5, _2$$5, _3$$5, _8$$9, _10$$11, _11$$11, _12$$11, _13$$11, _14$$24, _15$$24, _16$$24, _17$$24, _18$$24, _19$$24, _20$$30, _22$$30, _23$$30, _24$$30, _25$$41, _27$$41, _28$$41, _29$$41;
zval filter, _4$$7, _5$$7, _7$$9, _9$$14;
zval *this_ptr = getThis();
@@ -3805,10 +3806,10 @@ PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveFilter)
ZVAL_UNDEF(&arguments);
ZVAL_UNDEF(&definition);
ZVAL_UNDEF(&_6);
- ZVAL_UNDEF(&_20);
- ZVAL_UNDEF(&_21);
- ZVAL_UNDEF(&_22);
- ZVAL_UNDEF(&_23);
+ ZVAL_UNDEF(&_30);
+ ZVAL_UNDEF(&_31);
+ ZVAL_UNDEF(&_32);
+ ZVAL_UNDEF(&_33);
ZVAL_UNDEF(&_0$$5);
ZVAL_UNDEF(&_1$$5);
ZVAL_UNDEF(&_2$$5);
@@ -3824,6 +3825,14 @@ PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveFilter)
ZVAL_UNDEF(&_17$$24);
ZVAL_UNDEF(&_18$$24);
ZVAL_UNDEF(&_19$$24);
+ ZVAL_UNDEF(&_20$$30);
+ ZVAL_UNDEF(&_22$$30);
+ ZVAL_UNDEF(&_23$$30);
+ ZVAL_UNDEF(&_24$$30);
+ ZVAL_UNDEF(&_25$$41);
+ ZVAL_UNDEF(&_27$$41);
+ ZVAL_UNDEF(&_28$$41);
+ ZVAL_UNDEF(&_29$$41);
ZVAL_UNDEF(&left);
ZEND_PARSE_PARAMETERS_START(2, 2)
Z_PARAM_ARRAY(filter)
@@ -4007,8 +4016,23 @@ PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveFilter)
RETURN_MM();
}
if (ZEPHIR_IS_STRING(&name, "lower") || ZEPHIR_IS_STRING(&name, "lowercase")) {
- ZEPHIR_CONCAT_SVS(return_value, "strtolower(", &arguments, ")");
- RETURN_MM();
+ zephir_read_property(&_20$$30, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY);
+ _21$$30 = Z_TYPE_P(&_20$$30) != IS_NULL;
+ if (_21$$30) {
+ zephir_read_property(&_22$$30, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY);
+ ZEPHIR_INIT_VAR(&_24$$30);
+ ZVAL_STRING(&_24$$30, "helper");
+ ZEPHIR_CALL_METHOD(&_23$$30, &_22$$30, "has", NULL, 0, &_24$$30);
+ zephir_check_call_status();
+ _21$$30 = ZEPHIR_IS_TRUE_IDENTICAL(&_23$$30);
+ }
+ if (_21$$30) {
+ ZEPHIR_CONCAT_SVS(return_value, "$this->helper->lower(", &arguments, ")");
+ RETURN_MM();
+ } else {
+ ZEPHIR_CONCAT_SVS(return_value, "strtolower(", &arguments, ")");
+ RETURN_MM();
+ }
}
if (ZEPHIR_IS_STRING(&name, "right_trim")) {
ZEPHIR_CONCAT_SVS(return_value, "rtrim(", &arguments, ")");
@@ -4043,8 +4067,23 @@ PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveFilter)
RETURN_MM();
}
if (ZEPHIR_IS_STRING(&name, "upper") || ZEPHIR_IS_STRING(&name, "uppercase")) {
- ZEPHIR_CONCAT_SVS(return_value, "strtoupper(", &arguments, ")");
- RETURN_MM();
+ zephir_read_property(&_25$$41, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY);
+ _26$$41 = Z_TYPE_P(&_25$$41) != IS_NULL;
+ if (_26$$41) {
+ zephir_read_property(&_27$$41, this_ptr, ZEND_STRL("container"), PH_NOISY_CC | PH_READONLY);
+ ZEPHIR_INIT_VAR(&_29$$41);
+ ZVAL_STRING(&_29$$41, "helper");
+ ZEPHIR_CALL_METHOD(&_28$$41, &_27$$41, "has", NULL, 0, &_29$$41);
+ zephir_check_call_status();
+ _26$$41 = ZEPHIR_IS_TRUE_IDENTICAL(&_28$$41);
+ }
+ if (_26$$41) {
+ ZEPHIR_CONCAT_SVS(return_value, "$this->helper->upper(", &arguments, ")");
+ RETURN_MM();
+ } else {
+ ZEPHIR_CONCAT_SVS(return_value, "strtoupper(", &arguments, ")");
+ RETURN_MM();
+ }
}
if (ZEPHIR_IS_STRING(&name, "url_encode")) {
ZEPHIR_CONCAT_SVS(return_value, "urlencode(", &arguments, ")");
@@ -4052,15 +4091,15 @@ PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, resolveFilter)
}
} while(0);
- ZEPHIR_INIT_VAR(&_20);
- object_init_ex(&_20, phalcon_mvc_view_engine_volt_exception_ce);
- zephir_array_fetch_string(&_21, &filter, SL("file"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2579);
- zephir_array_fetch_string(&_22, &filter, SL("line"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2580);
- ZEPHIR_INIT_VAR(&_23);
- ZEPHIR_CONCAT_SVSVSV(&_23, "Unknown filter \"", &name, "\" in ", &_21, " on line ", &_22);
- ZEPHIR_CALL_METHOD(NULL, &_20, "__construct", NULL, 504, &_23);
+ ZEPHIR_INIT_VAR(&_30);
+ object_init_ex(&_30, phalcon_mvc_view_engine_volt_exception_ce);
+ zephir_array_fetch_string(&_31, &filter, SL("file"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2587);
+ zephir_array_fetch_string(&_32, &filter, SL("line"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2588);
+ ZEPHIR_INIT_VAR(&_33);
+ ZEPHIR_CONCAT_SVSVSV(&_33, "Unknown filter \"", &name, "\" in ", &_31, " on line ", &_32);
+ ZEPHIR_CALL_METHOD(NULL, &_30, "__construct", NULL, 504, &_33);
zephir_check_call_status();
- zephir_throw_exception_debug(&_20, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2580);
+ zephir_throw_exception_debug(&_30, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2588);
ZEPHIR_MM_RESTORE();
return;
}
@@ -4205,26 +4244,26 @@ PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, statementList)
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", 2866);
+ zephir_is_iterable(&statements, 0, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2874);
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", 2620);
+ ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "Corrupted statement", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2628);
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", 2628);
- zephir_array_fetch_string(&_6$$7, &statement, SL("line"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2628);
+ zephir_array_fetch_string(&_5$$7, &statement, SL("file"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2636);
+ zephir_array_fetch_string(&_6$$7, &statement, SL("line"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2636);
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, 504, &_7$$7, &statement);
zephir_check_call_status();
- zephir_throw_exception_debug(&_4$$7, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2630);
+ zephir_throw_exception_debug(&_4$$7, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2638);
ZEPHIR_MM_RESTORE();
return;
}
@@ -4242,10 +4281,10 @@ PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, statementList)
}
}
ZEPHIR_OBS_NVAR(&type);
- zephir_array_fetch_string(&type, &statement, SL("type"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2656);
+ zephir_array_fetch_string(&type, &statement, SL("type"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2664);
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", 2664);
+ zephir_array_fetch_string(&_12$$10, &statement, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2672);
zephir_concat_self(&compilation, &_12$$10);
break;
}
@@ -4315,7 +4354,7 @@ PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, statementList)
}
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", 2711);
+ zephir_array_fetch_string(&blockName, &statement, SL("name"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2719);
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);
@@ -4326,7 +4365,7 @@ PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, statementList)
array_init(&blocks);
}
if (Z_TYPE_P(&compilation) != IS_NULL) {
- zephir_array_append(&blocks, &compilation, PH_SEPARATE, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2726);
+ zephir_array_append(&blocks, &compilation, PH_SEPARATE, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2734);
ZEPHIR_INIT_NVAR(&compilation);
ZVAL_NULL(&compilation);
}
@@ -4348,8 +4387,8 @@ PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, statementList)
}
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", 2751);
- zephir_array_fetch_string(&_36$$25, &path, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2755);
+ zephir_array_fetch_string(&path, &statement, SL("path"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2759);
+ zephir_array_fetch_string(&_36$$25, &path, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2763);
ZEPHIR_CALL_METHOD(&finalPath, this_ptr, "getfinalpath", &_37, 0, &_36$$25);
zephir_check_call_status();
ZEPHIR_INIT_NVAR(&extended);
@@ -4445,13 +4484,13 @@ PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, statementList)
}
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", 2857);
- zephir_array_fetch_string(&_58$$37, &statement, SL("line"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2858);
+ zephir_array_fetch_string(&_57$$37, &statement, SL("file"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2865);
+ zephir_array_fetch_string(&_58$$37, &statement, SL("line"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2866);
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, 504, &_59$$37);
zephir_check_call_status();
- zephir_throw_exception_debug(&_56$$37, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2858);
+ zephir_throw_exception_debug(&_56$$37, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2866);
ZEPHIR_MM_RESTORE();
return;
} while(0);
@@ -4469,19 +4508,19 @@ PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, statementList)
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", 2620);
+ ZEPHIR_THROW_EXCEPTION_DEBUG_STR(phalcon_mvc_view_engine_volt_exception_ce, "Corrupted statement", "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2628);
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", 2628);
- zephir_array_fetch_string(&_62$$40, &statement, SL("line"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2628);
+ zephir_array_fetch_string(&_61$$40, &statement, SL("file"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2636);
+ zephir_array_fetch_string(&_62$$40, &statement, SL("line"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2636);
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, 504, &_63$$40, &statement);
zephir_check_call_status();
- zephir_throw_exception_debug(&_60$$40, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2630);
+ zephir_throw_exception_debug(&_60$$40, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2638);
ZEPHIR_MM_RESTORE();
return;
}
@@ -4499,10 +4538,10 @@ PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, statementList)
}
}
ZEPHIR_OBS_NVAR(&type);
- zephir_array_fetch_string(&type, &statement, SL("type"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2656);
+ zephir_array_fetch_string(&type, &statement, SL("type"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2664);
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", 2664);
+ zephir_array_fetch_string(&_66$$43, &statement, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2672);
zephir_concat_self(&compilation, &_66$$43);
break;
}
@@ -4572,7 +4611,7 @@ PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, statementList)
}
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", 2711);
+ zephir_array_fetch_string(&blockName, &statement, SL("name"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2719);
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);
@@ -4583,7 +4622,7 @@ PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, statementList)
array_init(&blocks);
}
if (Z_TYPE_P(&compilation) != IS_NULL) {
- zephir_array_append(&blocks, &compilation, PH_SEPARATE, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2726);
+ zephir_array_append(&blocks, &compilation, PH_SEPARATE, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2734);
ZEPHIR_INIT_NVAR(&compilation);
ZVAL_NULL(&compilation);
}
@@ -4605,8 +4644,8 @@ PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, statementList)
}
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", 2751);
- zephir_array_fetch_string(&_82$$58, &path, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2755);
+ zephir_array_fetch_string(&path, &statement, SL("path"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2759);
+ zephir_array_fetch_string(&_82$$58, &path, SL("value"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2763);
ZEPHIR_CALL_METHOD(&finalPath, this_ptr, "getfinalpath", &_37, 0, &_82$$58);
zephir_check_call_status();
ZEPHIR_INIT_NVAR(&extended);
@@ -4702,13 +4741,13 @@ PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, statementList)
}
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", 2857);
- zephir_array_fetch_string(&_96$$70, &statement, SL("line"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2858);
+ zephir_array_fetch_string(&_95$$70, &statement, SL("file"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2865);
+ zephir_array_fetch_string(&_96$$70, &statement, SL("line"), PH_NOISY | PH_READONLY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2866);
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, 504, &_97$$70);
zephir_check_call_status();
- zephir_throw_exception_debug(&_94$$70, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2858);
+ zephir_throw_exception_debug(&_94$$70, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2866);
ZEPHIR_MM_RESTORE();
return;
} while(0);
@@ -4760,7 +4799,7 @@ PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, statementListOrExtends)
}
isStatementList = 1;
if (!(zephir_array_isset_string(statements, SL("type")))) {
- zephir_is_iterable(statements, 0, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2915);
+ zephir_is_iterable(statements, 0, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2923);
if (Z_TYPE_P(statements) == IS_ARRAY) {
ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(statements), _0$$4)
{
@@ -4833,7 +4872,7 @@ PHP_METHOD(Phalcon_Mvc_View_Engine_Volt_Compiler, isTagFactory)
_0$$6 = zephir_array_isset_string(&left, SL("name"));
if (_0$$6) {
zephir_memory_observe(&_1$$6);
- zephir_array_fetch_string(&_1$$6, &left, SL("name"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2952);
+ zephir_array_fetch_string(&_1$$6, &left, SL("name"), PH_NOISY, "phalcon/Mvc/View/Engine/Volt/Compiler.zep", 2960);
_0$$6 = Z_TYPE_P(&_1$$6) == IS_ARRAY;
}
if (_0$$6) {
diff --git a/ext/phalcon/support/helperfactory.zep.c b/ext/phalcon/support/helperfactory.zep.c
index 2a726b086a..ad3117cc12 100644
--- a/ext/phalcon/support/helperfactory.zep.c
+++ b/ext/phalcon/support/helperfactory.zep.c
@@ -43,8 +43,10 @@
* @method string decrement(string $text, string $separator = '_')
* @method string dirFromFile(string $file)
* @method string dirSeparator(string $directory)
+ * @method string dynamic(string $text, string $leftDelimiter = "{", string $rightDelimiter = "}", string $separator = "|")
* @method string encode($data, int $options = 0, int $depth = 512)
* @method bool endsWith(string $haystack, string $needle, bool $ignoreCase = true)
+ * @method mixed filter(array $collection, callable|null $method)
* @method mixed first(array $collection, callable $method = null)
* @method string firstBetween(string $text, string $start, string $end)
* @method mixed firstKey(array $collection, callable $method = null)
@@ -56,6 +58,7 @@
* @method string humanize(string $text)
* @method bool includes(string $haystack, string $needle)
* @method string increment(string $text, string $separator = '_')
+ * @method string interpolate(string $message, array $context = [], string $leftToken = "%", string $rightToken = "%")
* @method bool isAnagram(string $first, string $second)
* @method bool isBetween(int $value, int $start, int $end)
* @method bool isLower(string $text, string $encoding = 'UTF-8')
diff --git a/ext/phalcon/support/version.zep.c b/ext/phalcon/support/version.zep.c
index a1876dd028..03672625a3 100644
--- a/ext/phalcon/support/version.zep.c
+++ b/ext/phalcon/support/version.zep.c
@@ -115,7 +115,7 @@ PHP_METHOD(Phalcon_Support_Version, getVersion)
ZVAL_LONG(&_0, 6);
zephir_array_fast_append(return_value, &_0);
ZEPHIR_INIT_NVAR(&_0);
- ZVAL_LONG(&_0, 1);
+ ZVAL_LONG(&_0, 2);
zephir_array_fast_append(return_value, &_0);
ZEPHIR_INIT_NVAR(&_0);
ZVAL_LONG(&_0, 4);
diff --git a/ext/php_phalcon.h b/ext/php_phalcon.h
index a70d261233..898500a98b 100644
--- a/ext/php_phalcon.h
+++ b/ext/php_phalcon.h
@@ -11,7 +11,7 @@
#include "kernel/globals.h"
#define PHP_PHALCON_NAME "phalcon"
-#define PHP_PHALCON_VERSION "5.6.1"
+#define PHP_PHALCON_VERSION "5.6.2"
#define PHP_PHALCON_EXTNAME "phalcon"
#define PHP_PHALCON_AUTHOR "Phalcon Team and contributors"
#define PHP_PHALCON_ZEPVERSION "0.18.0-$Id$"
diff --git a/package.xml b/package.xml
index be1d63e946..b774a39590 100644
--- a/package.xml
+++ b/package.xml
@@ -22,11 +22,11 @@
nikos@phalcon.io
yes
- 2024-02-08
+ 2024-03-14
- 5.6.1
- 5.6.1
+ 5.6.2
+ 5.6.2
stable
@@ -38,15 +38,8 @@
### Changed
- - Changed `Phalcon\Cli\Router::setDefaultAction` and `Phalcon\Cli\Router::setDefaultModule` to return the object back for a fluent interface [#16328](https://github.com/phalcon/cphalcon/issues/16328)
-
- ### Fixed
-
- - Fixed `Phalcon\Db\Adapter\Pdo\Postgresql::describeColumns()` to return the correct string back [#16371](https://github.com/phalcon/cphalcon/issues/16371)
- - Fixed `Phalcon/Filter/Validation::validate()` and `Phalcon/Filter/Validation/ValidationInterface::validate()` to return also `bool` [#16337](https://github.com/phalcon/cphalcon/issues/16337)
- - Fixed `Phalcon\Mvc\Model::toArray` to ignore getters when the field name is `source`. [#16514](https://github.com/phalcon/cphalcon/issues/16514)
- - Fixed `Phalcon\Http\Request::getPut` to correctly get form encoded data [#16519](https://github.com/phalcon/cphalcon/issues/16519)
- - Fixed deprecation warning in callables `Use of "static" in callables is deprecated` for PHP 8.2+ [#16263](https://github.com/phalcon/cphalcon/issues/16263)
+ - Changed `Phalcon\Mvc\View\Engine\Volt\Compiler::filter` to use the helper with `upper` and `lower` for UTF-8 characters [#16543](https://github.com/phalcon/cphalcon/issues/16543)
+ - Changed `Phalcon\Di\AbstractInjectionAware` to extend `stdClass` for PHP 8.2 deprecation warnings [#16543](https://github.com/phalcon/cphalcon/issues/16543)
diff --git a/phalcon/Di/AbstractInjectionAware.zep b/phalcon/Di/AbstractInjectionAware.zep
index dbd41f2ef8..868bb39cd0 100644
--- a/phalcon/Di/AbstractInjectionAware.zep
+++ b/phalcon/Di/AbstractInjectionAware.zep
@@ -10,10 +10,12 @@
namespace Phalcon\Di;
+use stdClass;
+
/**
* This abstract class offers common access to the DI in a class
*/
-abstract class AbstractInjectionAware implements InjectionAwareInterface
+abstract class AbstractInjectionAware extends stdClass implements InjectionAwareInterface
{
/**
* Dependency Injector
diff --git a/phalcon/Mvc/View/Engine/Volt/Compiler.zep b/phalcon/Mvc/View/Engine/Volt/Compiler.zep
index 68f140c0b5..2939a79d86 100644
--- a/phalcon/Mvc/View/Engine/Volt/Compiler.zep
+++ b/phalcon/Mvc/View/Engine/Volt/Compiler.zep
@@ -2550,7 +2550,11 @@ class Compiler implements InjectionAwareInterface
return "$this->length(" . arguments . ")";
case "lower":
case "lowercase":
- return "strtolower(" . arguments . ")";
+ if this->container !== null && true === this->container->has("helper") {
+ return "$this->helper->lower(" . arguments . ")";
+ } else {
+ return "strtolower(" . arguments . ")";
+ }
case "right_trim":
return "rtrim(" . arguments . ")";
case "nl2br":
@@ -2569,7 +2573,11 @@ class Compiler implements InjectionAwareInterface
return "trim(" . arguments . ")";
case "upper":
case "uppercase":
- return "strtoupper(" . arguments . ")";
+ if this->container !== null && true === this->container->has("helper") {
+ return "$this->helper->upper(" . arguments . ")";
+ } else {
+ return "strtoupper(" . arguments . ")";
+ }
case "url_encode":
return "urlencode(" . arguments . ")";
}
diff --git a/phalcon/Support/HelperFactory.zep b/phalcon/Support/HelperFactory.zep
index d50eca28db..5ccadc7b38 100644
--- a/phalcon/Support/HelperFactory.zep
+++ b/phalcon/Support/HelperFactory.zep
@@ -26,8 +26,10 @@ use Phalcon\Factory\AbstractFactory;
* @method string decrement(string $text, string $separator = '_')
* @method string dirFromFile(string $file)
* @method string dirSeparator(string $directory)
+ * @method string dynamic(string $text, string $leftDelimiter = "{", string $rightDelimiter = "}", string $separator = "|")
* @method string encode($data, int $options = 0, int $depth = 512)
* @method bool endsWith(string $haystack, string $needle, bool $ignoreCase = true)
+ * @method mixed filter(array $collection, callable|null $method)
* @method mixed first(array $collection, callable $method = null)
* @method string firstBetween(string $text, string $start, string $end)
* @method mixed firstKey(array $collection, callable $method = null)
@@ -39,6 +41,7 @@ use Phalcon\Factory\AbstractFactory;
* @method string humanize(string $text)
* @method bool includes(string $haystack, string $needle)
* @method string increment(string $text, string $separator = '_')
+ * @method string interpolate(string $message, array $context = [], string $leftToken = "%", string $rightToken = "%")
* @method bool isAnagram(string $first, string $second)
* @method bool isBetween(int $value, int $start, int $end)
* @method bool isLower(string $text, string $encoding = 'UTF-8')
diff --git a/phalcon/Support/Version.zep b/phalcon/Support/Version.zep
index b7f1a0f85c..bda665f28f 100644
--- a/phalcon/Support/Version.zep
+++ b/phalcon/Support/Version.zep
@@ -77,7 +77,7 @@ class Version
*/
protected function getVersion() -> array
{
- return [5, 6, 1, 4, 0];
+ return [5, 6, 2, 4, 0];
}
/**
diff --git a/tests/integration/Mvc/View/Engine/Volt/Compiler/CompileStringCest.php b/tests/integration/Mvc/View/Engine/Volt/Compiler/CompileStringCest.php
index b5b5836bf6..35b3936297 100644
--- a/tests/integration/Mvc/View/Engine/Volt/Compiler/CompileStringCest.php
+++ b/tests/integration/Mvc/View/Engine/Volt/Compiler/CompileStringCest.php
@@ -24,6 +24,7 @@
use function ob_end_clean;
use function ob_get_clean;
use function ob_start;
+use function str_replace;
use function substr;
use const PHP_EOL;
@@ -452,11 +453,11 @@ private function getVoltCompileString(): array
],
[
'{{ "hello"|uppercase }}',
- '= strtoupper(\'hello\') ?>',
+ "= \$this->helper->upper('hello') ?>",
],
[
'{{ "hello"|lowercase }}',
- '= strtolower(\'hello\') ?>',
+ "= \$this->helper->lower('hello') ?>",
],
[
'{{ ("hello" ~ "lol")|e|length }}',
diff --git a/tests/integration/Mvc/View/Engine/Volt/Compiler/FunctionCallCest.php b/tests/integration/Mvc/View/Engine/Volt/Compiler/FunctionCallCest.php
index 7d52f93828..bc51f3aa40 100644
--- a/tests/integration/Mvc/View/Engine/Volt/Compiler/FunctionCallCest.php
+++ b/tests/integration/Mvc/View/Engine/Volt/Compiler/FunctionCallCest.php
@@ -299,22 +299,22 @@ private function getExamples(): array
[
'label' => 'lower',
'source' => '{{ "abc" | lower }}',
- 'expected' => '= strtolower(\'abc\') ?>',
+ 'expected' => '= $this->helper->lower(\'abc\') ?>',
],
[
'label' => 'lowercase',
'source' => '{{ "abc" | lowercase }}',
- 'expected' => '= strtolower(\'abc\') ?>',
+ 'expected' => '= $this->helper->lower(\'abc\') ?>',
],
[
'label' => 'upper',
'source' => '{{ "abc" | upper }}',
- 'expected' => '= strtoupper(\'abc\') ?>',
+ 'expected' => '= $this->helper->upper(\'abc\') ?>',
],
[
'label' => 'uppercase',
'source' => '{{ "abc" | uppercase }}',
- 'expected' => '= strtoupper(\'abc\') ?>',
+ 'expected' => '= $this->helper->upper(\'abc\') ?>',
],
[
'label' => 'capitalize',