Skip to content

Commit ae4bc23

Browse files
authored
Merge pull request #16734 from raicabogdan/5.0.x-16733
The `escape` argument is explicitly required in PHP 8.4
2 parents e5f8f3b + 1f5d55e commit ae4bc23

File tree

2 files changed

+25
-5
lines changed

2 files changed

+25
-5
lines changed

Diff for: CHANGELOG-5.0.md

+12
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,17 @@
11
# Changelog
22

3+
## [5.9.2](https://github.com/phalcon/cphalcon/releases/tag/v5.9.2) (2025-XX-XX)
4+
5+
### Changed
6+
7+
### Added
8+
9+
### Fixed
10+
11+
- Fixed `Phalcon\Translate\Adapter\Csv` the `escape` argument is explicitly required in PHP 8.4 [#16733](https://github.com/phalcon/cphalcon/issues/16733)
12+
13+
### Removed
14+
315
## [5.9.1](https://github.com/phalcon/cphalcon/releases/tag/v5.9.1) (2025-03-31)
416

517
### Changed

Diff for: phalcon/Translate/Adapter/Csv.zep

+13-5
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ class Csv extends AbstractAdapter implements ArrayAccess
3131
* @param array $options = [
3232
* 'content' => '',
3333
* 'delimiter' => ';',
34-
* 'enclosure' => '"'
34+
* 'enclosure' => '"',
35+
* 'escape' => '\\'
3536
* ]
3637
*
3738
* @throws Exception
@@ -40,7 +41,7 @@ class Csv extends AbstractAdapter implements ArrayAccess
4041
<InterpolatorFactory> interpolator,
4142
array options
4243
) {
43-
var delimiter, enclosure;
44+
var delimiter, enclosure, escape;
4445

4546
parent::__construct(interpolator, options);
4647

@@ -60,7 +61,13 @@ class Csv extends AbstractAdapter implements ArrayAccess
6061
let enclosure = "\"";
6162
}
6263

63-
this->load(options["content"], 0, delimiter, enclosure);
64+
if isset options["escape"] {
65+
let escape = options["escape"];
66+
} else {
67+
let escape = "\\";
68+
}
69+
70+
this->load(options["content"], 0, delimiter, enclosure, escape);
6471
}
6572

6673
/**
@@ -114,10 +121,11 @@ class Csv extends AbstractAdapter implements ArrayAccess
114121
* @param int $length
115122
* @param string $separator
116123
* @param string $enclosure
124+
* @param string $escape
117125
*
118126
* @throws Exception
119127
*/
120-
private function load(string file, int length, string delimiter, string enclosure) -> void
128+
private function load(string file, int length, string delimiter, string enclosure, string escape) -> void
121129
{
122130
var data, fileHandler;
123131

@@ -130,7 +138,7 @@ class Csv extends AbstractAdapter implements ArrayAccess
130138
}
131139

132140
loop {
133-
let data = fgetcsv(fileHandler, length, delimiter, enclosure);
141+
let data = fgetcsv(fileHandler, length, delimiter, enclosure, escape);
134142

135143
if data === false {
136144
break;

0 commit comments

Comments
 (0)