[php-src] master: spl: deprecate SplFileObject CSV methods (#23437)
Gina Peter Banyard via GitHub <[email protected]>
| Newsgroups | gmane.comp.php.cvs.general |
|---|---|
| Message-ID | <[email protected]> |
Author: Gina Peter Banyard (Girgias)
Committer: GitHub (web-flow)
Pusher: Girgias
Date: 2026-08-25T11:03:22+01:00
Commit: https://github.com/php/php-src/commit/ac3ff655ea806994b6856893f0042e270755e2e0
Raw diff: https://github.com/php/php-src/commit/ac3ff655ea806994b6856893f0042e270755e2e0.diff
spl: deprecate SplFileObject CSV methods (#23437)
RFC: https://wiki.php.net/rfc/deprecations_php_8_6#deprecate_splfileobject_csv_methods
Changed paths:
A ext/phar/tests/phar_oo_009_fgetcsv.phpt
A ext/spl/tests/SplFileObject/SplFileObject_testinput.txt
A ext/spl/tests/SplFileObject/csv/SplFileObject_fgetcsv_basic.phpt
A ext/spl/tests/SplFileObject/csv/SplFileObject_fgetcsv_delimiter_basic.phpt
A ext/spl/tests/SplFileObject/csv/SplFileObject_fgetcsv_delimiter_error.phpt
A ext/spl/tests/SplFileObject/csv/SplFileObject_fgetcsv_enclosure_basic.phpt
A ext/spl/tests/SplFileObject/csv/SplFileObject_fgetcsv_enclosure_error.phpt
A ext/spl/tests/SplFileObject/csv/SplFileObject_fgetcsv_escape_basic.phpt
A ext/spl/tests/SplFileObject/csv/SplFileObject_fgetcsv_escape_default.phpt
A ext/spl/tests/SplFileObject/csv/SplFileObject_fgetcsv_escape_empty.phpt
A ext/spl/tests/SplFileObject/csv/SplFileObject_fgetcsv_escape_error.phpt
A ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv.phpt
A ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_002.phpt
A ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation1.phpt
A ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation10.phpt
A ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation11.phpt
A ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation12.phpt
A ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation13.phpt
A ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation14.phpt
A ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation15.phpt
A ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation16.phpt
A ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation5.phpt
A ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation6.phpt
A ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation7.phpt
A ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation8.phpt
A ext/spl/tests/SplFileObject/csv/SplFileObject_getCsvControl_basic_001.phpt
A ext/spl/tests/SplFileObject/csv/SplFileObject_setCsvControl_basic.phpt
A ext/spl/tests/SplFileObject/csv/SplFileObject_setCsvControl_error001.phpt
A ext/spl/tests/SplFileObject/csv/SplFileObject_setCsvControl_error002.phpt
A ext/spl/tests/SplFileObject/csv/SplFileObject_setCsvControl_error003.phpt
A ext/spl/tests/SplFileObject/csv/SplFileObject_setCsvControl_variation001.phpt
A ext/spl/tests/SplFileObject/csv/SplFileObject_setCsvControl_variation002.phpt
A ext/spl/tests/SplFileObject/csv/SplFileObject_testinput.csv
A ext/spl/tests/SplFileObject/csv/bug46569.csv
A ext/spl/tests/SplFileObject/csv/bug46569.phpt
A ext/spl/tests/SplFileObject/csv/bug69181.phpt
A ext/spl/tests/SplFileObject/csv/bug75917.phpt
A ext/spl/tests/SplFileObject/csv/bug77024.phpt
A ext/spl/tests/SplFileObject/csv/bug78976.phpt
A ext/spl/tests/SplFileObject/csv/fgetcsv_blank_file.phpt
A ext/spl/tests/SplFileObject/csv/gh13685.phpt
A ext/spl/tests/SplFileObject/csv/gh16217.phpt
D ext/spl/tests/SplFileObject/SplFileObject_fgetcsv_basic.phpt
D ext/spl/tests/SplFileObject/SplFileObject_fgetcsv_delimiter_basic.phpt
D ext/spl/tests/SplFileObject/SplFileObject_fgetcsv_delimiter_error.phpt
D ext/spl/tests/SplFileObject/SplFileObject_fgetcsv_enclosure_basic.phpt
D ext/spl/tests/SplFileObject/SplFileObject_fgetcsv_enclosure_error.phpt
D ext/spl/tests/SplFileObject/SplFileObject_fgetcsv_escape_basic.phpt
D ext/spl/tests/SplFileObject/SplFileObject_fgetcsv_escape_default.phpt
D ext/spl/tests/SplFileObject/SplFileObject_fgetcsv_escape_empty.phpt
D ext/spl/tests/SplFileObject/SplFileObject_fgetcsv_escape_error.phpt
D ext/spl/tests/SplFileObject/SplFileObject_fputcsv.phpt
D ext/spl/tests/SplFileObject/SplFileObject_fputcsv_002.phpt
D ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation1.phpt
D ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation10.phpt
D ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation11.phpt
D ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation12.phpt
D ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation13.phpt
D ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation14.phpt
D ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation15.phpt
D ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation16.phpt
D ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation5.phpt
D ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation6.phpt
D ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation7.phpt
D ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation8.phpt
D ext/spl/tests/SplFileObject/SplFileObject_getCsvControl_basic_001.phpt
D ext/spl/tests/SplFileObject/SplFileObject_setCsvControl_basic.phpt
D ext/spl/tests/SplFileObject/SplFileObject_setCsvControl_error001.phpt
D ext/spl/tests/SplFileObject/SplFileObject_setCsvControl_error002.phpt
D ext/spl/tests/SplFileObject/SplFileObject_setCsvControl_error003.phpt
D ext/spl/tests/SplFileObject/SplFileObject_setCsvControl_variation001.phpt
D ext/spl/tests/SplFileObject/SplFileObject_setCsvControl_variation002.phpt
D ext/spl/tests/SplFileObject/SplFileObject_testinput.csv
D ext/spl/tests/SplFileObject/bug46569.csv
D ext/spl/tests/SplFileObject/bug46569.phpt
D ext/spl/tests/SplFileObject/bug75917.phpt
D ext/spl/tests/SplFileObject/bug77024.phpt
D ext/spl/tests/SplFileObject/bug78976.phpt
D ext/spl/tests/SplFileObject/fgetcsv_blank_file.phpt
D ext/spl/tests/bug69181.phpt
D ext/spl/tests/gh13685.phpt
D ext/spl/tests/gh16217.phpt
M ext/phar/tests/phar_oo_008.phpt
M ext/spl/spl_directory.stub.php
M ext/spl/spl_directory_arginfo.h
M ext/spl/tests/SplFileObject/SplFileObject_fflush_basic_001.phpt
M ext/spl/tests/SplFileObject/SplFileObject_fpassthru_basic.phpt
M ext/spl/tests/SplFileObject/SplFileObject_fscanf_basic.phpt
M ext/spl/tests/SplFileObject/SplFileObject_fstat_with_basic_fstat_disabled.phpt
Diff:
diff --git a/ext/phar/tests/phar_oo_008.phpt b/ext/phar/tests/phar_oo_008.phpt
index f1ef081f12a6..8121ca8f1056 100644
--- a/ext/phar/tests/phar_oo_008.phpt
+++ b/ext/phar/tests/phar_oo_008.phpt
@@ -29,53 +29,34 @@ foreach($f as $k => $v)
echo "$k=>$v\n";
}
-class MyCSVFile extends SplFileObject
+class MyFile extends SplFileObject
{
- function current(): array|false
+ function current(): string
{
- return parent::fgetcsv(',', '"', escape: '');
+ return parent::fgets();
}
}
-$phar->setInfoClass('MyCSVFile');
-/** @var MyCSVFile $v */
+$phar->setInfoClass('MyFile');
+/** @var MyFile $v */
$v = $phar['a.csv'];
echo "===3===\n";
while(!$v->eof())
{
- echo $v->key() . "=>" . join('|', $v->fgetcsv(escape: '')) . "\n";
+ echo $v->key() . "=>" . $v->fgets() . "\n";
}
echo "===4===\n";
$v->rewind();
while(!$v->eof())
{
- $l = $v->fgetcsv(escape: '');
- echo $v->key() . "=>" . join('|', $l) . "\n";
+ $l = $v->fgets();
+ echo $v->key() . "=>" . $l . "\n";
}
echo "===5===\n";
foreach($v as $k => $d)
-{
- echo "$k=>" . join('|', $d) . "\n";
-}
-
-class MyCSVFile2 extends SplFileObject
-{
- function getCurrentLine(): string
- {
- echo __METHOD__ . "\n";
- return implode('|', parent::fgetcsv(',', '"', escape: ''));
- }
-}
-
-$phar->setInfoClass('MyCSVFile2');
-/** @var MyCSVFile2 $v */
-$v = $phar['a.csv'];
-
-echo "===6===\n";
-foreach($v as $k => $d)
{
echo "$k=>" . $d . "\n";
}
@@ -98,21 +79,18 @@ __halt_compiler();
1=>2,a,b
2=>3,"c","'e'"
===3===
-0=>1|2|3
-0=>2|a|b
-1=>3|c|'e'
+0=>1,2,3
+
+1=>2,a,b
+
+2=>3,"c","'e'"
===4===
-0=>1|2|3
-1=>2|a|b
-2=>3|c|'e'
+1=>1,2,3
+
+2=>2,a,b
+
+3=>3,"c","'e'"
===5===
-0=>1|2|3
-1=>2|a|b
-2=>3|c|'e'
-===6===
-MyCSVFile2::getCurrentLine
-1=>1|2|3
-MyCSVFile2::getCurrentLine
-3=>2|a|b
-MyCSVFile2::getCurrentLine
-5=>3|c|'e'
+1=>1,2,3
+
+3=>3,"c","'e'"
diff --git a/ext/phar/tests/phar_oo_009_fgetcsv.phpt b/ext/phar/tests/phar_oo_009_fgetcsv.phpt
new file mode 100644
index 000000000000..edcb98b825a9
--- /dev/null
+++ b/ext/phar/tests/phar_oo_009_fgetcsv.phpt
@@ -0,0 +1,142 @@
+--TEST--
+Phar object: iterating via SplFileObject
+--EXTENSIONS--
+phar
+--INI--
+phar.require_hash=0
+--FILE--
+<?php
+
+$pharconfig = 1;
+
+require_once 'files/phar_oo_test.inc';
+
+$phar = new Phar($fname);
+$phar->setInfoClass('SplFileObject');
+
+$f = $phar['a.csv'];
+echo "===1===\n";
+foreach($f as $k => $v)
+{
+ echo "$k=>$v\n";
+}
+
+$f->setFlags(SplFileObject::DROP_NEW_LINE);
+
+echo "===2===\n";
+foreach($f as $k => $v)
+{
+ echo "$k=>$v\n";
+}
+
+class MyCSVFile extends SplFileObject
+{
+ function current(): array|false
+ {
+ return parent::fgetcsv(',', '"', escape: '');
+ }
+}
+
+$phar->setInfoClass('MyCSVFile');
+/** @var MyCSVFile $v */
+$v = $phar['a.csv'];
+
+echo "===3===\n";
+while(!$v->eof())
+{
+ echo $v->key() . "=>" . join('|', $v->fgetcsv(escape: '')) . "\n";
+}
+
+echo "===4===\n";
+$v->rewind();
+while(!$v->eof())
+{
+ $l = $v->fgetcsv(escape: '');
+ echo $v->key() . "=>" . join('|', $l) . "\n";
+}
+
+echo "===5===\n";
+foreach($v as $k => $d)
+{
+ echo "$k=>" . join('|', $d) . "\n";
+}
+
+class MyCSVFile2 extends SplFileObject
+{
+ function getCurrentLine(): string
+ {
+ echo __METHOD__ . "\n";
+ return implode('|', parent::fgetcsv(',', '"', escape: ''));
+ }
+}
+
+$phar->setInfoClass('MyCSVFile2');
+/** @var MyCSVFile2 $v */
+$v = $phar['a.csv'];
+
+echo "===6===\n";
+foreach($v as $k => $d)
+{
+ echo "$k=>" . $d . "\n";
+}
+
+?>
+--CLEAN--
+<?php
+unlink(__DIR__ . '/files/phar_oo_009_fgetcsv.phar.php');
+__halt_compiler();
+?>
+--EXPECTF--
+===1===
+0=>1,2,3
+
+1=>2,a,b
+
+2=>3,"c","'e'"
+===2===
+0=>1,2,3
+1=>2,a,b
+2=>3,"c","'e'"
+===3===
+
+Deprecated: Method SplFileObject::fgetcsv() is deprecated since 8.6 in %s on line %d
+0=>1|2|3
+
+Deprecated: Method SplFileObject::fgetcsv() is deprecated since 8.6 in %s on line %d
+0=>2|a|b
+
+Deprecated: Method SplFileObject::fgetcsv() is deprecated since 8.6 in %s on line %d
+1=>3|c|'e'
+===4===
+
+Deprecated: Method SplFileObject::fgetcsv() is deprecated since 8.6 in %s on line %d
+0=>1|2|3
+
+Deprecated: Method SplFileObject::fgetcsv() is deprecated since 8.6 in %s on line %d
+1=>2|a|b
+
+Deprecated: Method SplFileObject::fgetcsv() is deprecated since 8.6 in %s on line %d
+2=>3|c|'e'
+===5===
+
+Deprecated: Method SplFileObject::fgetcsv() is deprecated since 8.6 in %s on line %d
+0=>1|2|3
+
+Deprecated: Method SplFileObject::fgetcsv() is deprecated since 8.6 in %s on line %d
+1=>2|a|b
+
+Deprecated: Method SplFileObject::fgetcsv() is deprecated since 8.6 in %s on line %d
+2=>3|c|'e'
+===6===
+MyCSVFile2::getCurrentLine
+
+Deprecated: Method SplFileObject::fgetcsv() is deprecated since 8.6 in %s on line %d
+1=>1|2|3
+MyCSVFile2::getCurrentLine
+
+Deprecated: Method SplFileObject::fgetcsv() is deprecated since 8.6 in %s on line %d
+3=>2|a|b
+MyCSVFile2::getCurrentLine
+
+Deprecated: Method SplFileObject::fgetcsv() is deprecated since 8.6 in %s on line %d
+5=>3|c|'e'
diff --git a/ext/spl/spl_directory.stub.php b/ext/spl/spl_directory.stub.php
index 57407007c0a5..9e2ebd9ccc4a 100644
--- a/ext/spl/spl_directory.stub.php
+++ b/ext/spl/spl_directory.stub.php
@@ -239,15 +239,19 @@ public function fgets(): string {}
public function fread(int $length): string|false {}
/** @tentative-return-type */
+ #[\Deprecated(since: '8.6')]
public function fgetcsv(string $separator = ",", string $enclosure = "\"", string $escape = "\\"): array|false {}
/** @tentative-return-type */
+ #[\Deprecated(since: '8.6')]
public function fputcsv(array $fields, string $separator = ",", string $enclosure = "\"", string $escape = "\\", string $eol = "\n"): int|false {}
/** @tentative-return-type */
+ #[\Deprecated(since: '8.6')]
public function setCsvControl(string $separator = ",", string $enclosure = "\"", string $escape = "\\"): void {}
/** @tentative-return-type */
+ #[\Deprecated(since: '8.6')]
public function getCsvControl(): array {}
/**
diff --git a/ext/spl/spl_directory_arginfo.h b/ext/spl/spl_directory_arginfo.h
index 3a5bd37d49d5..0eb6969cb517 100644
--- a/ext/spl/spl_directory_arginfo.h
+++ b/ext/spl/spl_directory_arginfo.h
@@ -1,5 +1,5 @@
/* This is a generated file, edit spl_directory.stub.php instead.
- * Stub hash: de8ef9b284ceb46a1d55b22d4a5a3009d04bc2af */
+ * Stub hash: 3313c7bc6d9691a01903e6625630863e2b1e1bf7 */
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplFileInfo___construct, 0, 0, 1)
ZEND_ARG_TYPE_INFO(0, filename, IS_STRING, 0)
@@ -438,10 +438,10 @@ static const zend_function_entry class_SplFileObject_methods[] = {
ZEND_ME(SplFileObject, valid, arginfo_class_SplFileObject_valid, ZEND_ACC_PUBLIC)
ZEND_ME(SplFileObject, fgets, arginfo_class_SplFileObject_fgets, ZEND_ACC_PUBLIC)
ZEND_ME(SplFileObject, fread, arginfo_class_SplFileObject_fread, ZEND_ACC_PUBLIC)
- ZEND_ME(SplFileObject, fgetcsv, arginfo_class_SplFileObject_fgetcsv, ZEND_ACC_PUBLIC)
- ZEND_ME(SplFileObject, fputcsv, arginfo_class_SplFileObject_fputcsv, ZEND_ACC_PUBLIC)
- ZEND_ME(SplFileObject, setCsvControl, arginfo_class_SplFileObject_setCsvControl, ZEND_ACC_PUBLIC)
- ZEND_ME(SplFileObject, getCsvControl, arginfo_class_SplFileObject_getCsvControl, ZEND_ACC_PUBLIC)
+ ZEND_ME(SplFileObject, fgetcsv, arginfo_class_SplFileObject_fgetcsv, ZEND_ACC_PUBLIC|ZEND_ACC_DEPRECATED)
+ ZEND_ME(SplFileObject, fputcsv, arginfo_class_SplFileObject_fputcsv, ZEND_ACC_PUBLIC|ZEND_ACC_DEPRECATED)
+ ZEND_ME(SplFileObject, setCsvControl, arginfo_class_SplFileObject_setCsvControl, ZEND_ACC_PUBLIC|ZEND_ACC_DEPRECATED)
+ ZEND_ME(SplFileObject, getCsvControl, arginfo_class_SplFileObject_getCsvControl, ZEND_ACC_PUBLIC|ZEND_ACC_DEPRECATED)
ZEND_ME(SplFileObject, flock, arginfo_class_SplFileObject_flock, ZEND_ACC_PUBLIC)
ZEND_ME(SplFileObject, fflush, arginfo_class_SplFileObject_fflush, ZEND_ACC_PUBLIC)
ZEND_ME(SplFileObject, ftell, arginfo_class_SplFileObject_ftell, ZEND_ACC_PUBLIC)
@@ -635,6 +635,23 @@ static zend_class_entry *register_class_SplFileObject(zend_class_entry *class_en
zend_declare_typed_class_constant(class_entry, const_READ_CSV_name, &const_READ_CSV_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG));
zend_string_release_ex(const_READ_CSV_name, true);
+
+ zend_attribute *attribute_Deprecated_func_fgetcsv_0 = zend_add_function_attribute(zend_hash_str_find_ptr(&class_entry->function_table, "fgetcsv", sizeof("fgetcsv") - 1), ZSTR_KNOWN(ZEND_STR_DEPRECATED_CAPITALIZED), 1);
+ ZVAL_STR(&attribute_Deprecated_func_fgetcsv_0->args[0].value, ZSTR_KNOWN(ZEND_STR_8_DOT_6));
+ attribute_Deprecated_func_fgetcsv_0->args[0].name = ZSTR_KNOWN(ZEND_STR_SINCE);
+
+ zend_attribute *attribute_Deprecated_func_fputcsv_0 = zend_add_function_attribute(zend_hash_str_find_ptr(&class_entry->function_table, "fputcsv", sizeof("fputcsv") - 1), ZSTR_KNOWN(ZEND_STR_DEPRECATED_CAPITALIZED), 1);
+ ZVAL_STR(&attribute_Deprecated_func_fputcsv_0->args[0].value, ZSTR_KNOWN(ZEND_STR_8_DOT_6));
+ attribute_Deprecated_func_fputcsv_0->args[0].name = ZSTR_KNOWN(ZEND_STR_SINCE);
+
+ zend_attribute *attribute_Deprecated_func_setcsvcontrol_0 = zend_add_function_attribute(zend_hash_str_find_ptr(&class_entry->function_table, "setcsvcontrol", sizeof("setcsvcontrol") - 1), ZSTR_KNOWN(ZEND_STR_DEPRECATED_CAPITALIZED), 1);
+ ZVAL_STR(&attribute_Deprecated_func_setcsvcontrol_0->args[0].value, ZSTR_KNOWN(ZEND_STR_8_DOT_6));
+ attribute_Deprecated_func_setcsvcontrol_0->args[0].name = ZSTR_KNOWN(ZEND_STR_SINCE);
+
+ zend_attribute *attribute_Deprecated_func_getcsvcontrol_0 = zend_add_function_attribute(zend_hash_str_find_ptr(&class_entry->function_table, "getcsvcontrol", sizeof("getcsvcontrol") - 1), ZSTR_KNOWN(ZEND_STR_DEPRECATED_CAPITALIZED), 1);
+ ZVAL_STR(&attribute_Deprecated_func_getcsvcontrol_0->args[0].value, ZSTR_KNOWN(ZEND_STR_8_DOT_6));
+ attribute_Deprecated_func_getcsvcontrol_0->args[0].name = ZSTR_KNOWN(ZEND_STR_SINCE);
+
return class_entry;
}
diff --git a/ext/spl/tests/SplFileObject/SplFileObject_fflush_basic_001.phpt b/ext/spl/tests/SplFileObject/SplFileObject_fflush_basic_001.phpt
index b399a852008e..7d5d90f43d6d 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_fflush_basic_001.phpt
+++ b/ext/spl/tests/SplFileObject/SplFileObject_fflush_basic_001.phpt
@@ -5,7 +5,7 @@ SplFileObject::fflush function - basic test
/*
* test a successful flush
*/
-$obj = New SplFileObject(__DIR__.'/SplFileObject_testinput.csv');
+$obj = New SplFileObject(__DIR__.'/SplFileObject_testinput.txt');
var_dump($obj->fflush());
/*
diff --git a/ext/spl/tests/SplFileObject/SplFileObject_fgetcsv_escape_empty.phpt b/ext/spl/tests/SplFileObject/SplFileObject_fgetcsv_escape_empty.phpt
deleted file mode 100644
index 0498b6c91297..000000000000
--- a/ext/spl/tests/SplFileObject/SplFileObject_fgetcsv_escape_empty.phpt
+++ /dev/null
@@ -1,29 +0,0 @@
---TEST--
-SplFileObject::fgetcsv() with empty $escape
---FILE--
-<?php
-$contents = <<<EOS
-"cell1","cell2\\","cell3","cell4"
-"\\\\\\line1
-line2\\\\\\"
-EOS;
-$file = new SplTempFileObject;
-$file->fwrite($contents);
-$file->rewind();
-while (($data = $file->fgetcsv(',', '"', ''))) {
- print_r($data);
-}
-?>
---EXPECT--
-Array
-(
- [0] => cell1
- [1] => cell2\
- [2] => cell3
- [3] => cell4
-)
-Array
-(
- [0] => \\\line1
-line2\\\
-)
diff --git a/ext/spl/tests/SplFileObject/SplFileObject_fpassthru_basic.phpt b/ext/spl/tests/SplFileObject/SplFileObject_fpassthru_basic.phpt
index a79047830b69..f32ecc9fbadb 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_fpassthru_basic.phpt
+++ b/ext/spl/tests/SplFileObject/SplFileObject_fpassthru_basic.phpt
@@ -2,7 +2,7 @@
SplFileObject::fpassthru function - basic functionality test
--FILE--
<?php
-$obj = New SplFileObject(__DIR__.'/SplFileObject_testinput.csv');
+$obj = New SplFileObject(__DIR__.'/SplFileObject_testinput.txt');
$obj->fpassthru();
?>
--EXPECT--
diff --git a/ext/spl/tests/SplFileObject/SplFileObject_fscanf_basic.phpt b/ext/spl/tests/SplFileObject/SplFileObject_fscanf_basic.phpt
index 02de3f8d1276..c7f3fee0c629 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_fscanf_basic.phpt
+++ b/ext/spl/tests/SplFileObject/SplFileObject_fscanf_basic.phpt
@@ -2,7 +2,7 @@
SplFileObject::fscanf function - basic functionality test
--FILE--
<?php
-$obj = New SplFileObject(__DIR__.'/SplFileObject_testinput.csv');
+$obj = New SplFileObject(__DIR__.'/SplFileObject_testinput.txt');
var_dump($obj->fscanf('%s'));
?>
--EXPECT--
diff --git a/ext/spl/tests/SplFileObject/SplFileObject_fstat_with_basic_fstat_disabled.phpt b/ext/spl/tests/SplFileObject/SplFileObject_fstat_with_basic_fstat_disabled.phpt
index dda7f1e4283f..26573b6af170 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_fstat_with_basic_fstat_disabled.phpt
+++ b/ext/spl/tests/SplFileObject/SplFileObject_fstat_with_basic_fstat_disabled.phpt
@@ -4,7 +4,7 @@ SplFileObject::fstat when fstat() has been disabled.
disable_functions="fstat"
--FILE--
<?php
-$obj = New SplFileObject(__DIR__.'/SplFileObject_testinput.csv');
+$obj = New SplFileObject(__DIR__.'/SplFileObject_testinput.txt');
var_dump($obj->fstat());
?>
--EXPECTF--
diff --git a/ext/spl/tests/SplFileObject/SplFileObject_testinput.csv b/ext/spl/tests/SplFileObject/SplFileObject_testinput.txt
similarity index 100%
rename from ext/spl/tests/SplFileObject/SplFileObject_testinput.csv
rename to ext/spl/tests/SplFileObject/SplFileObject_testinput.txt
diff --git a/ext/spl/tests/SplFileObject/bug46569.phpt b/ext/spl/tests/SplFileObject/bug46569.phpt
deleted file mode 100644
index be5d20ce99e3..000000000000
--- a/ext/spl/tests/SplFileObject/bug46569.phpt
+++ /dev/null
@@ -1,15 +0,0 @@
---TEST--
-Bug #46569 (SplFileObject: fgetcsv after seek returns wrong line)
---FILE--
-<?php
-$file = new SplFileObject(__DIR__ . '/bug46569.csv');
-$file->setCsvControl(escape: "");
-$file->seek(1);
-print_r($file->fgetcsv());
-?>
---EXPECT--
-Array
-(
- [0] => second
- [1] => line
-)
diff --git a/ext/spl/tests/SplFileObject/SplFileObject_fgetcsv_basic.phpt b/ext/spl/tests/SplFileObject/csv/SplFileObject_fgetcsv_basic.phpt
similarity index 74%
rename from ext/spl/tests/SplFileObject/SplFileObject_fgetcsv_basic.phpt
rename to ext/spl/tests/SplFileObject/csv/SplFileObject_fgetcsv_basic.phpt
index dd42be924cdd..1c59408a058e 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_fgetcsv_basic.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_fgetcsv_basic.phpt
@@ -23,7 +23,10 @@ var_dump($fo->fgetcsv());
<?php
unlink('SplFileObject__fgetcsv1.csv');
?>
---EXPECT--
+--EXPECTF--
+Deprecated: Method SplFileObject::setCsvControl() is deprecated since 8.6 in %s on line %d
+
+Deprecated: Method SplFileObject::fgetcsv() is deprecated since 8.6 in %s on line %d
array(4) {
[0]=>
string(6) "field1"
diff --git a/ext/spl/tests/SplFileObject/SplFileObject_fgetcsv_delimiter_basic.phpt b/ext/spl/tests/SplFileObject/csv/SplFileObject_fgetcsv_delimiter_basic.phpt
similarity index 75%
rename from ext/spl/tests/SplFileObject/SplFileObject_fgetcsv_delimiter_basic.phpt
rename to ext/spl/tests/SplFileObject/csv/SplFileObject_fgetcsv_delimiter_basic.phpt
index 13bbfd9064ab..8eafc3780b64 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_fgetcsv_delimiter_basic.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_fgetcsv_delimiter_basic.phpt
@@ -24,7 +24,10 @@ var_dump($fo->fgetcsv('|'));
<?php
unlink('SplFileObject__fgetcsv2.csv');
?>
---EXPECT--
+--EXPECTF--
+Deprecated: Method SplFileObject::setCsvControl() is deprecated since 8.6 in %s on line %d
+
+Deprecated: Method SplFileObject::fgetcsv() is deprecated since 8.6 in %s on line %d
array(4) {
[0]=>
string(6) "field1"
diff --git a/ext/spl/tests/SplFileObject/SplFileObject_fgetcsv_delimiter_error.phpt b/ext/spl/tests/SplFileObject/csv/SplFileObject_fgetcsv_delimiter_error.phpt
similarity index 76%
rename from ext/spl/tests/SplFileObject/SplFileObject_fgetcsv_delimiter_error.phpt
rename to ext/spl/tests/SplFileObject/csv/SplFileObject_fgetcsv_delimiter_error.phpt
index 99ce5203edf0..1551d4034dc2 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_fgetcsv_delimiter_error.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_fgetcsv_delimiter_error.phpt
@@ -27,5 +27,8 @@ try {
<?php
unlink('SplFileObject__fgetcsv3.csv');
?>
---EXPECT--
+--EXPECTF--
+Deprecated: Method SplFileObject::setCsvControl() is deprecated since 8.6 in %s on line %d
+
+Deprecated: Method SplFileObject::fgetcsv() is deprecated since 8.6 in %s on line %d
ValueError: SplFileObject::fgetcsv(): Argument #1 ($separator) must be a single character
diff --git a/ext/spl/tests/SplFileObject/SplFileObject_fgetcsv_enclosure_basic.phpt b/ext/spl/tests/SplFileObject/csv/SplFileObject_fgetcsv_enclosure_basic.phpt
similarity index 75%
rename from ext/spl/tests/SplFileObject/SplFileObject_fgetcsv_enclosure_basic.phpt
rename to ext/spl/tests/SplFileObject/csv/SplFileObject_fgetcsv_enclosure_basic.phpt
index d200d440f776..fc83c3f8757f 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_fgetcsv_enclosure_basic.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_fgetcsv_enclosure_basic.phpt
@@ -24,7 +24,10 @@ var_dump($fo->fgetcsv(enclosure: '"'));
<?php
unlink('SplFileObject__fgetcsv4.csv');
?>
---EXPECT--
+--EXPECTF--
+Deprecated: Method SplFileObject::setCsvControl() is deprecated since 8.6 in %s on line %d
+
+Deprecated: Method SplFileObject::fgetcsv() is deprecated since 8.6 in %s on line %d
array(4) {
[0]=>
string(6) "field1"
diff --git a/ext/spl/tests/SplFileObject/SplFileObject_fgetcsv_enclosure_error.phpt b/ext/spl/tests/SplFileObject/csv/SplFileObject_fgetcsv_enclosure_error.phpt
similarity index 76%
rename from ext/spl/tests/SplFileObject/SplFileObject_fgetcsv_enclosure_error.phpt
rename to ext/spl/tests/SplFileObject/csv/SplFileObject_fgetcsv_enclosure_error.phpt
index a13ac8d62a53..71b973ab7a16 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_fgetcsv_enclosure_error.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_fgetcsv_enclosure_error.phpt
@@ -27,5 +27,8 @@ try {
<?php
unlink('SplFileObject__fgetcsv5.csv');
?>
---EXPECT--
+--EXPECTF--
+Deprecated: Method SplFileObject::setCsvControl() is deprecated since 8.6 in %s on line %d
+
+Deprecated: Method SplFileObject::fgetcsv() is deprecated since 8.6 in %s on line %d
ValueError: SplFileObject::fgetcsv(): Argument #2 ($enclosure) must be a single character
diff --git a/ext/spl/tests/SplFileObject/SplFileObject_fgetcsv_escape_basic.phpt b/ext/spl/tests/SplFileObject/csv/SplFileObject_fgetcsv_escape_basic.phpt
similarity index 83%
rename from ext/spl/tests/SplFileObject/SplFileObject_fgetcsv_escape_basic.phpt
rename to ext/spl/tests/SplFileObject/csv/SplFileObject_fgetcsv_escape_basic.phpt
index 4a8bccaf671a..eedc801ba08c 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_fgetcsv_escape_basic.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_fgetcsv_escape_basic.phpt
@@ -14,6 +14,7 @@ var_dump($fo->fgetcsv(',', '"', '"'));
unlink('SplFileObject__fgetcsv6.csv');
?>
--EXPECTF--
+Deprecated: Method SplFileObject::fgetcsv() is deprecated since 8.6 in %s on line %d
array(3) {
[0]=>
string(3) "aaa"
diff --git a/ext/spl/tests/SplFileObject/SplFileObject_fgetcsv_escape_default.phpt b/ext/spl/tests/SplFileObject/csv/SplFileObject_fgetcsv_escape_default.phpt
similarity index 87%
rename from ext/spl/tests/SplFileObject/SplFileObject_fgetcsv_escape_default.phpt
rename to ext/spl/tests/SplFileObject/csv/SplFileObject_fgetcsv_escape_default.phpt
index b6a878f3cf35..d923d5997918 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_fgetcsv_escape_default.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_fgetcsv_escape_default.phpt
@@ -14,6 +14,8 @@ var_dump($fo->fgetcsv());
unlink('SplFileObject__fgetcsv7.csv');
?>
--EXPECTF--
+Deprecated: Method SplFileObject::fgetcsv() is deprecated since 8.6 in %s on line %d
+
Deprecated: SplFileObject::fgetcsv(): the $escape parameter must be provided, as its default value will change, either explicitly or via SplFileObject::setCsvControl() in %s on line %d
array(3) {
[0]=>
diff --git a/ext/spl/tests/SplFileObject/csv/SplFileObject_fgetcsv_escape_empty.phpt b/ext/spl/tests/SplFileObject/csv/SplFileObject_fgetcsv_escape_empty.phpt
new file mode 100644
index 000000000000..b14f4177c50c
--- /dev/null
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_fgetcsv_escape_empty.phpt
@@ -0,0 +1,37 @@
+--TEST--
+SplFileObject::fgetcsv() with empty $escape
+--FILE--
+<?php
+$contents = <<<EOS
+"cell1","cell2\\","cell3","cell4"
+"\\\\\\line1
+line2\\\\\\"
+EOS;
+$file = new SplTempFileObject;
+$file->fwrite($contents);
+$file->rewind();
+while (($data = $file->fgetcsv(',', '"', ''))) {
+ var_dump($data);
+}
+?>
+--EXPECTF--
+Deprecated: Method SplFileObject::fgetcsv() is deprecated since 8.6 in %s on line %d
+array(4) {
+ [0]=>
+ string(5) "cell1"
+ [1]=>
+ string(6) "cell2\"
+ [2]=>
+ string(5) "cell3"
+ [3]=>
+ string(5) "cell4"
+}
+
+Deprecated: Method SplFileObject::fgetcsv() is deprecated since 8.6 in %s on line %d
+array(1) {
+ [0]=>
+ string(17) "\\\line1
+line2\\\"
+}
+
+Deprecated: Method SplFileObject::fgetcsv() is deprecated since 8.6 in %s on line %d
diff --git a/ext/spl/tests/SplFileObject/SplFileObject_fgetcsv_escape_error.phpt b/ext/spl/tests/SplFileObject/csv/SplFileObject_fgetcsv_escape_error.phpt
similarity index 83%
rename from ext/spl/tests/SplFileObject/SplFileObject_fgetcsv_escape_error.phpt
rename to ext/spl/tests/SplFileObject/csv/SplFileObject_fgetcsv_escape_error.phpt
index d2421e23271f..324017a44672 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_fgetcsv_escape_error.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_fgetcsv_escape_error.phpt
@@ -17,5 +17,6 @@ try {
<?php
unlink('SplFileObject__fgetcsv8.csv');
?>
---EXPECT--
+--EXPECTF--
+Deprecated: Method SplFileObject::fgetcsv() is deprecated since 8.6 in %s on line %d
ValueError: SplFileObject::fgetcsv(): Argument #3 ($escape) must be empty or a single character
diff --git a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv.phpt b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv.phpt
similarity index 96%
rename from ext/spl/tests/SplFileObject/SplFileObject_fputcsv.phpt
rename to ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv.phpt
index a9bba9a6c4e8..0ab1bcb2d563 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv.phpt
@@ -5,7 +5,7 @@ SplFileObject::fputcsv(): functionality tests
$file = __DIR__ . '/SplFileObject_fputcsv.csv';
$fo = new SplFileObject($file, 'w');
// Suppress deprecation notice
-$fo->setCsvControl(escape: '\\');
+@$fo->setCsvControl(escape: '\\');
$list = array (
0 => 'aaa,bbb',
@@ -31,7 +31,7 @@ $list = array (
);
foreach ($list as $v) {
- $fo->fputcsv(explode(',', $v));
+ @$fo->fputcsv(explode(',', $v));
}
unset($fo);
diff --git a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv_002.phpt b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_002.phpt
similarity index 79%
rename from ext/spl/tests/SplFileObject/SplFileObject_fputcsv_002.phpt
rename to ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_002.phpt
index 41b1db637f24..1806e7e872d3 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv_002.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_002.phpt
@@ -17,6 +17,10 @@ $file = __DIR__ . '/SplFileObject_fputcsv1.csv';
unlink($file);
?>
--EXPECTF--
+Deprecated: Method SplFileObject::setCsvControl() is deprecated since 8.6 in %s on line %d
+
+Deprecated: Method SplFileObject::fputcsv() is deprecated since 8.6 in %s on line %d
+
Warning: Array to string conversion in %s on line %d
array(7) {
[0]=>
diff --git a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation1.phpt b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation1.phpt
similarity index 99%
rename from ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation1.phpt
rename to ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation1.phpt
index 2b9e649678bd..814e3ccea1be 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation1.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation1.phpt
@@ -42,13 +42,13 @@ foreach ($csv_lists as $csv_list) {
} else {
$fo = new SplFileObject($file, $file_modes[$mode_counter]);
}
- $fo->setCsvControl(escape: '');
+ @$fo->setCsvControl(escape: '');
$delimiter = $csv_list[0];
$enclosure = $csv_list[1];
$csv_field = $csv_list[2];
- var_dump( $fo->fputcsv($csv_field, $delimiter, $enclosure) );
+ var_dump( @$fo->fputcsv($csv_field, $delimiter, $enclosure) );
// check the file pointer position and eof
var_dump( $fo->ftell() );
var_dump( $fo->eof() );
diff --git a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation10.phpt b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation10.phpt
similarity index 98%
rename from ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation10.phpt
rename to ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation10.phpt
index 6c6f5109df04..7409045c2915 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation10.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation10.phpt
@@ -36,12 +36,12 @@ foreach ($fields as $field) {
} else {
$fo = new SplFileObject($file, $file_modes[$mode_counter]);
}
- $fo->setCsvControl(escape: '\\');
+ @$fo->setCsvControl(escape: '\\');
$csv_field = $field;
// write to a file in csv format
- var_dump( $fo->fputcsv($csv_field) );
+ var_dump( @$fo->fputcsv($csv_field) );
// check the file pointer position and eof
var_dump( $fo->ftell() );
diff --git a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation11.phpt b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation11.phpt
similarity index 99%
rename from ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation11.phpt
rename to ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation11.phpt
index b59dfafcfcb7..dd435e2c55ec 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation11.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation11.phpt
@@ -42,14 +42,14 @@ foreach ($csv_lists as $csv_list) {
} else {
$fo = new SplFileObject($file, $file_modes[$mode_counter]);
}
- $fo->setCsvControl(escape: '\\');
+ @$fo->setCsvControl(escape: '\\');
$delimiter = $csv_list[0];
$enclosure = $csv_list[1];
$csv_field = $csv_list[2];
// write to a file in csv format
- var_dump( $fo->fputcsv($csv_field, $delimiter) );
+ var_dump( @$fo->fputcsv($csv_field, $delimiter) );
// check the file pointer position and eof
var_dump( $fo->ftell() );
var_dump( $fo->eof() );
diff --git a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation12.phpt b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation12.phpt
similarity index 99%
rename from ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation12.phpt
rename to ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation12.phpt
index 04fd4c30b276..0fda717e16b8 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation12.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation12.phpt
@@ -43,14 +43,14 @@ foreach ($csv_lists as $csv_list) {
} else {
$fo = new SplFileObject($file, $file_modes[$mode_counter]);
}
- $fo->setCsvControl(escape: '\\');
+ @$fo->setCsvControl(escape: '\\');
$delimiter = $csv_list[0];
$enclosure = $csv_list[1];
$csv_field = $csv_list[2];
// write to a file in csv format
- var_dump( $fo->fputcsv($csv_field, '+') );
+ var_dump( @$fo->fputcsv($csv_field, '+') );
// check the file pointer position and eof
var_dump( $fo->ftell() );
var_dump( $fo->eof() );
diff --git a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation13.phpt b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation13.phpt
similarity index 89%
rename from ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation13.phpt
rename to ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation13.phpt
index 136491f915eb..e0e6d7962301 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation13.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation13.phpt
@@ -25,7 +25,9 @@ echo "Done\n";
$file = __DIR__ . '/SplFileObject_fputcsv_variation13.csv';
unlink($file);
?>
---EXPECT--
+--EXPECTF--
*** Testing fputcsv() : with default enclosure & delimiter of two chars ***
+
+Deprecated: Method SplFileObject::fputcsv() is deprecated since 8.6 in %s on line %d
ValueError: SplFileObject::fputcsv(): Argument #2 ($separator) must be a single character
Done
diff --git a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation14.phpt b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation14.phpt
similarity index 86%
rename from ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation14.phpt
rename to ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation14.phpt
index 8a8cb968b0af..a1a32130790c 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation14.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation14.phpt
@@ -30,8 +30,12 @@ echo "Done\n";
$file = __DIR__ . '/SplFileObject_fputcsv_variation14.csv';
unlink($file);
?>
---EXPECT--
+--EXPECTF--
*** Testing fputcsv() : with enclosure & delimiter of two chars and file opened in read mode ***
+
+Deprecated: Method SplFileObject::fputcsv() is deprecated since 8.6 in %s on line %d
ValueError: SplFileObject::fputcsv(): Argument #2 ($separator) must be a single character
+
+Deprecated: Method SplFileObject::fputcsv() is deprecated since 8.6 in %s on line %d
ValueError: SplFileObject::fputcsv(): Argument #3 ($enclosure) must be a single character
Done
diff --git a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation15.phpt b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation15.phpt
similarity index 61%
rename from ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation15.phpt
rename to ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation15.phpt
index 0762af9f214b..9911518830ee 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation15.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation15.phpt
@@ -15,6 +15,9 @@ foreach ($file as $line) {
echo $line;
}
?>
---EXPECT--
+--EXPECTF--
+Deprecated: Method SplFileObject::fputcsv() is deprecated since 8.6 in %s on line %d
+
+Deprecated: Method SplFileObject::fputcsv() is deprecated since 8.6 in %s on line %d
\
"\"""
diff --git a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation16.phpt b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation16.phpt
similarity index 91%
rename from ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation16.phpt
rename to ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation16.phpt
index d2bca8572f5b..796b9ac6ee79 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation16.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation16.phpt
@@ -12,7 +12,7 @@ $eol_chars = ['||', '|', '\n', "\n"];
foreach ($eol_chars as $eol_char) {
$file = new SplTempFileObject;
foreach ($data as $record) {
- $file->fputcsv($record, ',', '"', '', $eol_char);
+ @$file->fputcsv($record, ',', '"', '', $eol_char);
}
$file->rewind();
diff --git a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation5.phpt b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation5.phpt
similarity index 99%
rename from ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation5.phpt
rename to ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation5.phpt
index 468b66b44c23..b42cbb7aa15c 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation5.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation5.phpt
@@ -42,14 +42,14 @@ foreach ($csv_lists as $csv_list) {
} else {
$fo = new SplFileObject($file, $file_modes[$mode_counter]);
}
- $fo->setCsvControl(escape: '\\');
+ @$fo->setCsvControl(escape: '\\');
$delimiter = $csv_list[0];
$enclosure = $csv_list[1];
$csv_field = $csv_list[2];
// write to a file in csv format
- var_dump( $fo->fputcsv($csv_field) );
+ var_dump( @$fo->fputcsv($csv_field) );
// check the file pointer position and eof
var_dump( $fo->ftell() );
var_dump( $fo->eof() );
diff --git a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation6.phpt b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation6.phpt
similarity index 99%
rename from ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation6.phpt
rename to ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation6.phpt
index 8a4fb8ed9c5d..49c745da1781 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation6.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation6.phpt
@@ -45,14 +45,14 @@ foreach ($csv_lists as $csv_list) {
} else {
$fo = new SplFileObject($file, $file_modes[$mode_counter]);
}
- $fo->setCsvControl(escape: '\\');
+ @$fo->setCsvControl(escape: '\\');
$delimiter = $csv_list[0];
$enclosure = $csv_list[1];
$csv_field = $csv_list[2];
// write to a file in csv format
- var_dump( $fo->fputcsv($csv_field, '+', '%') );
+ var_dump( @$fo->fputcsv($csv_field, '+', '%') );
// check the file pointer position and eof
var_dump( $fo->ftell() );
var_dump( $fo->eof() );
diff --git a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation7.phpt b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation7.phpt
similarity index 99%
rename from ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation7.phpt
rename to ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation7.phpt
index 46642a4f52d7..058abb6faab7 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation7.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation7.phpt
@@ -45,14 +45,14 @@ foreach ($csv_lists as $csv_list) {
} else {
$fo = new SplFileObject($file, $file_modes[$mode_counter]);
}
- $fo->setCsvControl(escape: '\\');
+ @$fo->setCsvControl(escape: '\\');
$delimiter = $csv_list[0];
$enclosure = $csv_list[1];
$csv_field = $csv_list[2];
// write to a file in csv format
- var_dump( $fo->fputcsv($csv_field, '+', $enclosure) );
+ var_dump( @$fo->fputcsv($csv_field, '+', $enclosure) );
// check the file pointer position and eof
var_dump( $fo->ftell() );
var_dump( $fo->eof() );
diff --git a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation8.phpt b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation8.phpt
similarity index 99%
rename from ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation8.phpt
rename to ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation8.phpt
index 608a61bf3d57..f78965120e41 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation8.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation8.phpt
@@ -45,14 +45,14 @@ foreach ($csv_lists as $csv_list) {
} else {
$fo = new SplFileObject($file, $file_modes[$mode_counter]);
}
- $fo->setCsvControl(escape: '\\');
+ @$fo->setCsvControl(escape: '\\');
$delimiter = $csv_list[0];
$enclosure = $csv_list[1];
$csv_field = $csv_list[2];
// write to a file in csv format
- var_dump( $fo->fputcsv($csv_field, $delimiter, '+') );
+ var_dump( @$fo->fputcsv($csv_field, $delimiter, '+') );
// check the file pointer position and eof
var_dump( $fo->ftell() );
var_dump( $fo->eof() );
diff --git a/ext/spl/tests/SplFileObject/SplFileObject_getCsvControl_basic_001.phpt b/ext/spl/tests/SplFileObject/csv/SplFileObject_getCsvControl_basic_001.phpt
similarity index 71%
rename from ext/spl/tests/SplFileObject/SplFileObject_getCsvControl_basic_001.phpt
rename to ext/spl/tests/SplFileObject/csv/SplFileObject_getCsvControl_basic_001.phpt
index 97af917cb2ea..3224145f9e7a 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_getCsvControl_basic_001.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_getCsvControl_basic_001.phpt
@@ -6,7 +6,8 @@ $obj = New SplFileObject(__DIR__.'/SplFileObject_testinput.csv');
var_dump($obj->getCsvControl());
?>
---EXPECT--
+--EXPECTF--
+Deprecated: Method SplFileObject::getCsvControl() is deprecated since 8.6 in %s on line %d
array(3) {
[0]=>
string(1) ","
diff --git a/ext/spl/tests/SplFileObject/SplFileObject_setCsvControl_basic.phpt b/ext/spl/tests/SplFileObject/csv/SplFileObject_setCsvControl_basic.phpt
similarity index 85%
rename from ext/spl/tests/SplFileObject/SplFileObject_setCsvControl_basic.phpt
rename to ext/spl/tests/SplFileObject/csv/SplFileObject_setCsvControl_basic.phpt
index a8b7cb730d0f..0c4d3e04903c 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_setCsvControl_basic.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_setCsvControl_basic.phpt
@@ -24,7 +24,8 @@ foreach ($s as $row) {
<?php
unlink('csv_control_data_basic.csv');
?>
---EXPECT--
+--EXPECTF--
+Deprecated: Method SplFileObject::setCsvControl() is deprecated since 8.6 in %s on line %d
groene appelen : 10
gele bananen : 20
rode kersen : 30
diff --git a/ext/spl/tests/SplFileObject/SplFileObject_setCsvControl_error001.phpt b/ext/spl/tests/SplFileObject/csv/SplFileObject_setCsvControl_error001.phpt
similarity index 85%
rename from ext/spl/tests/SplFileObject/SplFileObject_setCsvControl_error001.phpt
rename to ext/spl/tests/SplFileObject/csv/SplFileObject_setCsvControl_error001.phpt
index 3ff6478ca1df..d5168af4ebda 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_setCsvControl_error001.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_setCsvControl_error001.phpt
@@ -23,5 +23,6 @@ try {
<?php
unlink('csv_control_data_error001.csv');
?>
---EXPECT--
+--EXPECTF--
+Deprecated: Method SplFileObject::setCsvControl() is deprecated since 8.6 in %s on line %d
ValueError: SplFileObject::setCsvControl(): Argument #1 ($separator) must be a single character
diff --git a/ext/spl/tests/SplFileObject/SplFileObject_setCsvControl_error002.phpt b/ext/spl/tests/SplFileObject/csv/SplFileObject_setCsvControl_error002.phpt
similarity index 85%
rename from ext/spl/tests/SplFileObject/SplFileObject_setCsvControl_error002.phpt
rename to ext/spl/tests/SplFileObject/csv/SplFileObject_setCsvControl_error002.phpt
index 3a33c479fa06..85ba6a34f6e6 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_setCsvControl_error002.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_setCsvControl_error002.phpt
@@ -23,5 +23,6 @@ try {
<?php
unlink('csv_control_data_error002.csv');
?>
---EXPECT--
+--EXPECTF--
+Deprecated: Method SplFileObject::setCsvControl() is deprecated since 8.6 in %s on line %d
ValueError: SplFileObject::setCsvControl(): Argument #2 ($enclosure) must be a single character
diff --git a/ext/spl/tests/SplFileObject/SplFileObject_setCsvControl_error003.phpt b/ext/spl/tests/SplFileObject/csv/SplFileObject_setCsvControl_error003.phpt
similarity index 86%
rename from ext/spl/tests/SplFileObject/SplFileObject_setCsvControl_error003.phpt
rename to ext/spl/tests/SplFileObject/csv/SplFileObject_setCsvControl_error003.phpt
index a68d0ad29780..8bf9de8f2700 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_setCsvControl_error003.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_setCsvControl_error003.phpt
@@ -25,5 +25,6 @@ try {
<?php
unlink('csv_control_data_error003.csv');
?>
---EXPECT--
+--EXPECTF--
+Deprecated: Method SplFileObject::setCsvControl() is deprecated since 8.6 in %s on line %d
ValueError: SplFileObject::setCsvControl(): Argument #3 ($escape) must be empty or a single character
diff --git a/ext/spl/tests/SplFileObject/SplFileObject_setCsvControl_variation001.phpt b/ext/spl/tests/SplFileObject/csv/SplFileObject_setCsvControl_variation001.phpt
similarity index 88%
rename from ext/spl/tests/SplFileObject/SplFileObject_setCsvControl_variation001.phpt
rename to ext/spl/tests/SplFileObject/csv/SplFileObject_setCsvControl_variation001.phpt
index 8c8e52e9743c..3fb97a6e6c00 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_setCsvControl_variation001.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_setCsvControl_variation001.phpt
@@ -24,6 +24,8 @@ foreach ($s as $row) {
unlink('csv_control_data_variation001.csv');
?>
--EXPECTF--
+Deprecated: Method SplFileObject::setCsvControl() is deprecated since 8.6 in %s on line %d
+
Deprecated: SplFileObject::setCsvControl(): the $escape parameter must be provided as its default value will change in %s on line %d
groene appelen : 10
gele bananen : 20
diff --git a/ext/spl/tests/SplFileObject/SplFileObject_setCsvControl_variation002.phpt b/ext/spl/tests/SplFileObject/csv/SplFileObject_setCsvControl_variation002.phpt
similarity index 59%
rename from ext/spl/tests/SplFileObject/SplFileObject_setCsvControl_variation002.phpt
rename to ext/spl/tests/SplFileObject/csv/SplFileObject_setCsvControl_variation002.phpt
index 39b526a86aba..815b06676e92 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_setCsvControl_variation002.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_setCsvControl_variation002.phpt
@@ -6,7 +6,10 @@ $file = new SplTempFileObject;
$file->setCsvControl(',', '"', '');
var_dump($file->getCsvControl());
?>
---EXPECT--
+--EXPECTF--
+Deprecated: Method SplFileObject::setCsvControl() is deprecated since 8.6 in %s on line %d
+
+Deprecated: Method SplFileObject::getCsvControl() is deprecated since 8.6 in %s on line %d
array(3) {
[0]=>
string(1) ","
diff --git a/ext/spl/tests/SplFileObject/csv/SplFileObject_testinput.csv b/ext/spl/tests/SplFileObject/csv/SplFileObject_testinput.csv
new file mode 100644
index 000000000000..41a9e31c8d7c
--- /dev/null
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_testinput.csv
@@ -0,0 +1,5 @@
+first,second,third
+1,2,3
+4,5,6
+7,8,9
+0,0,0
diff --git a/ext/spl/tests/SplFileObject/bug46569.csv b/ext/spl/tests/SplFileObject/csv/bug46569.csv
similarity index 100%
rename from ext/spl/tests/SplFileObject/bug46569.csv
rename to ext/spl/tests/SplFileObject/csv/bug46569.csv
diff --git a/ext/spl/tests/SplFileObject/csv/bug46569.phpt b/ext/spl/tests/SplFileObject/csv/bug46569.phpt
new file mode 100644
index 000000000000..175321c44772
--- /dev/null
+++ b/ext/spl/tests/SplFileObject/csv/bug46569.phpt
@@ -0,0 +1,19 @@
+--TEST--
+Bug #46569 (SplFileObject: fgetcsv after seek returns wrong line)
+--FILE--
+<?php
+$file = new SplFileObject(__DIR__ . '/bug46569.csv');
+$file->setCsvControl(escape: "");
+$file->seek(1);
+var_dump($file->fgetcsv());
+?>
+--EXPECTF--
+Deprecated: Method SplFileObject::setCsvControl() is deprecated since 8.6 in %s on line %d
+
+Deprecated: Method SplFileObject::fgetcsv() is deprecated since 8.6 in %s on line %d
+array(2) {
+ [0]=>
+ string(6) "second"
+ [1]=>
+ string(4) "line"
+}
diff --git a/ext/spl/tests/bug69181.phpt b/ext/spl/tests/SplFileObject/csv/bug69181.phpt
similarity index 92%
rename from ext/spl/tests/bug69181.phpt
rename to ext/spl/tests/SplFileObject/csv/bug69181.phpt
index 085fccd32652..4c866ea1f5f6 100644
--- a/ext/spl/tests/bug69181.phpt
+++ b/ext/spl/tests/SplFileObject/csv/bug69181.phpt
@@ -12,14 +12,14 @@ CSV;
file_put_contents($filename, $csv);
$file = new SplFileObject($filename);
-$file->setCsvControl(escape: "");
+@$file->setCsvControl(escape: "");
$file->setFlags(SplFileObject::SKIP_EMPTY | SplFileObject::DROP_NEW_LINE | SplFileObject::READ_CSV);
var_dump(iterator_to_array($file));
echo "\n====\n\n";
$file->rewind();
-while (($record = $file->fgetcsv())) {
+while (($record = @$file->fgetcsv())) {
var_dump($record);
}
?>
diff --git a/ext/spl/tests/SplFileObject/bug75917.phpt b/ext/spl/tests/SplFileObject/csv/bug75917.phpt
similarity index 65%
rename from ext/spl/tests/SplFileObject/bug75917.phpt
rename to ext/spl/tests/SplFileObject/csv/bug75917.phpt
index 27ce3f792c59..f85792451e9a 100644
--- a/ext/spl/tests/SplFileObject/bug75917.phpt
+++ b/ext/spl/tests/SplFileObject/csv/bug75917.phpt
@@ -20,6 +20,11 @@ $tmp->setFlags(SplFileObject::READ_CSV | SplFileObject::SKIP_EMPTY);
$tmp->seek(23);
var_dump($tmp->current());
?>
---EXPECT--
+--EXPECTF--
+Deprecated: Method SplFileObject::setCsvControl() is deprecated since 8.6 in %s on line %d
+
+Deprecated: Method SplFileObject::fputcsv() is deprecated since 8.6 in %s on line %d
+
+Deprecated: Method SplFileObject::fputcsv() is deprecated since 8.6 in %s on line %d
bool(false)
bool(false)
diff --git a/ext/spl/tests/SplFileObject/bug77024.phpt b/ext/spl/tests/SplFileObject/csv/bug77024.phpt
similarity index 71%
rename from ext/spl/tests/SplFileObject/bug77024.phpt
rename to ext/spl/tests/SplFileObject/csv/bug77024.phpt
index a82713fb3a83..ac0d83ce152f 100644
--- a/ext/spl/tests/SplFileObject/bug77024.phpt
+++ b/ext/spl/tests/SplFileObject/csv/bug77024.phpt
@@ -19,7 +19,10 @@ unset($file);
unlink($tmp);
?>
---EXPECT--
+--EXPECTF--
+Deprecated: Method SplFileObject::setCsvControl() is deprecated since 8.6 in %s on line %d
+
+Deprecated: Method SplFileObject::fputcsv() is deprecated since 8.6 in %s on line %d
foo,bar,baz
line1
diff --git a/ext/spl/tests/SplFileObject/bug78976.phpt b/ext/spl/tests/SplFileObject/csv/bug78976.phpt
similarity index 53%
rename from ext/spl/tests/SplFileObject/bug78976.phpt
rename to ext/spl/tests/SplFileObject/csv/bug78976.phpt
index 23123a34eb3b..41783bcfa6ee 100644
--- a/ext/spl/tests/SplFileObject/bug78976.phpt
+++ b/ext/spl/tests/SplFileObject/csv/bug78976.phpt
@@ -6,5 +6,8 @@ $file = new SplFileObject('php://memory', 'r');
$file->setCsvControl(escape: "");
var_dump($file->fputcsv(['foo', 'bar']));
?>
---EXPECT--
+--EXPECTF--
+Deprecated: Method SplFileObject::setCsvControl() is deprecated since 8.6 in %s on line %d
+
+Deprecated: Method SplFileObject::fputcsv() is deprecated since 8.6 in %s on line %d
bool(false)
diff --git a/ext/spl/tests/SplFileObject/fgetcsv_blank_file.phpt b/ext/spl/tests/SplFileObject/csv/fgetcsv_blank_file.phpt
similarity index 56%
rename from ext/spl/tests/SplFileObject/fgetcsv_blank_file.phpt
rename to ext/spl/tests/SplFileObject/csv/fgetcsv_blank_file.phpt
index 7bd97a158c43..272f88f9cf56 100644
--- a/ext/spl/tests/SplFileObject/fgetcsv_blank_file.phpt
+++ b/ext/spl/tests/SplFileObject/csv/fgetcsv_blank_file.phpt
@@ -17,6 +17,11 @@ $file->setFlags(SplFileObject::SKIP_EMPTY);
$file->rewind();
var_dump($file->fgetcsv());
?>
---EXPECT--
+--EXPECTF--
+Deprecated: Method SplFileObject::setCsvControl() is deprecated since 8.6 in %s on line %d
+
+Deprecated: Method SplFileObject::fgetcsv() is deprecated since 8.6 in %s on line %d
bool(false)
+
+Deprecated: Method SplFileObject::fgetcsv() is deprecated since 8.6 in %s on line %d
bool(false)
diff --git a/ext/spl/tests/gh13685.phpt b/ext/spl/tests/SplFileObject/csv/gh13685.phpt
similarity index 73%
rename from ext/spl/tests/gh13685.phpt
rename to ext/spl/tests/SplFileObject/csv/gh13685.phpt
index 3f79f9280f5a..a9bf3121fbb7 100644
--- a/ext/spl/tests/gh13685.phpt
+++ b/ext/spl/tests/SplFileObject/csv/gh13685.phpt
@@ -39,13 +39,21 @@ try {
}
?>
---EXPECT--
+--EXPECTF--
--- Directly call fgetcsv ---
+
+Deprecated: Method SplFileObject::fgetcsv() is deprecated since 8.6 in %s on line %d
string(14) ""A", "B", "C"
"
+
+Deprecated: Method SplFileObject::fgetcsv() is deprecated since 8.6 in %s on line %d
string(13) ""D", "E", "F""
+
+Deprecated: Method SplFileObject::fgetcsv() is deprecated since 8.6 in %s on line %d
string(0) ""
--- Use csv control ---
+
+Deprecated: Method SplFileObject::setCsvControl() is deprecated since 8.6 in %s on line %d
string(14) ""A", "B", "C"
"
string(13) ""D", "E", "F""
diff --git a/ext/spl/tests/gh16217.phpt b/ext/spl/tests/SplFileObject/csv/gh16217.phpt
similarity index 91%
rename from ext/spl/tests/gh16217.phpt
rename to ext/spl/tests/SplFileObject/csv/gh16217.phpt
index c6a0846e64f9..fb57b43dea05 100644
--- a/ext/spl/tests/gh16217.phpt
+++ b/ext/spl/tests/SplFileObject/csv/gh16217.phpt
@@ -28,7 +28,8 @@ try {
echo "Done\n";
?>
---EXPECT--
+--EXPECTF--
+Deprecated: Method SplFileObject::fputcsv() is deprecated since 8.6 in %s on line %d
fputcsv: Error: Object not initialized
next: Error: Object not initialized
next (READ_AHEAD): Error: Object not initialized