Commit ac3ff655ea8 for php.net
commit ac3ff655ea806994b6856893f0042e270755e2e0
Author: Gina Peter Banyard <girgias@php.net>
Date: Tue Aug 25 11:03:22 2026 +0100
spl: deprecate SplFileObject CSV methods (#23437)
RFC: https://wiki.php.net/rfc/deprecations_php_8_6#deprecate_splfileobject_csv_methods
diff --git a/ext/phar/tests/phar_oo_008.phpt b/ext/phar/tests/phar_oo_008.phpt
index f1ef081f12a..8121ca8f105 100644
--- a/ext/phar/tests/phar_oo_008.phpt
+++ b/ext/phar/tests/phar_oo_008.phpt
@@ -29,53 +29,34 @@
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 @@ function getCurrentLine(): string
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 00000000000..edcb98b825a
--- /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 57407007c0a..9e2ebd9ccc4 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 3a5bd37d49d..0eb6969cb51 100644
Binary files a/ext/spl/spl_directory_arginfo.h and b/ext/spl/spl_directory_arginfo.h differ
diff --git a/ext/spl/tests/SplFileObject/SplFileObject_fflush_basic_001.phpt b/ext/spl/tests/SplFileObject/SplFileObject_fflush_basic_001.phpt
index b399a852008..7d5d90f43d6 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 @@
/*
* 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 0498b6c9129..00000000000
--- 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 a79047830b6..f32ecc9fbad 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 02de3f8d127..c7f3fee0c62 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 dda7f1e4283..26573b6af17 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 @@
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 be5d20ce99e..00000000000
--- 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 dd42be924cd..1c59408a058 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_fgetcsv_basic.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_fgetcsv_basic.phpt
@@ -23,7 +23,10 @@
<?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 13bbfd9064a..8eafc3780b6 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 @@
<?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 99ce5203edf..1551d4034dc 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 @@
<?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 d200d440f77..fc83c3f8757 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 @@
<?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 a13ac8d62a5..71b973ab7a1 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 @@
<?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 4a8bccaf671..eedc801ba08 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 @@
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 b6a878f3cf3..d923d599791 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 @@
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 00000000000..b14f4177c50
--- /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 d2421e23271..324017a4467 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 @@
<?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 a9bba9a6c4e..0ab1bcb2d56 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv.phpt
@@ -5,7 +5,7 @@
$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 @@
);
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 41b1db637f2..1806e7e872d 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv_002.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_002.phpt
@@ -17,6 +17,10 @@
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 2b9e649678b..814e3ccea1b 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation1.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation1.phpt
@@ -42,13 +42,13 @@
} 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 6c6f5109df0..7409045c291 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation10.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation10.phpt
@@ -36,12 +36,12 @@
} 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 b59dfafcfcb..dd435e2c55e 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation11.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation11.phpt
@@ -42,14 +42,14 @@
} 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 04fd4c30b27..0fda717e16b 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation12.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation12.phpt
@@ -43,14 +43,14 @@
} 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 136491f915e..e0e6d796230 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation13.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation13.phpt
@@ -25,7 +25,9 @@
$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 8a8cb968b0a..a1a32130790 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation14.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation14.phpt
@@ -30,8 +30,12 @@
$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 0762af9f214..9911518830e 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation15.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation15.phpt
@@ -15,6 +15,9 @@
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 d2bca8572f5..796b9ac6ee7 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation16.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation16.phpt
@@ -12,7 +12,7 @@
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 468b66b44c2..b42cbb7aa15 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation5.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation5.phpt
@@ -42,14 +42,14 @@
} 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 8a4fb8ed9c5..49c745da178 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation6.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation6.phpt
@@ -45,14 +45,14 @@
} 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 46642a4f52d..058abb6faab 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation7.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation7.phpt
@@ -45,14 +45,14 @@
} 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 608a61bf3d5..f78965120e4 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_fputcsv_variation8.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_fputcsv_variation8.phpt
@@ -45,14 +45,14 @@
} 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 97af917cb2e..3224145f9e7 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 @@
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 a8b7cb730d0..0c4d3e04903 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_setCsvControl_basic.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_setCsvControl_basic.phpt
@@ -24,7 +24,8 @@
<?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 3ff6478ca1d..d5168af4ebd 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_setCsvControl_error001.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_setCsvControl_error001.phpt
@@ -23,5 +23,6 @@
<?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 3a33c479fa0..85ba6a34f6e 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_setCsvControl_error002.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_setCsvControl_error002.phpt
@@ -23,5 +23,6 @@
<?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 a68d0ad2978..8bf9de8f270 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_setCsvControl_error003.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_setCsvControl_error003.phpt
@@ -25,5 +25,6 @@
<?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 8c8e52e9743..3fb97a6e6c0 100644
--- a/ext/spl/tests/SplFileObject/SplFileObject_setCsvControl_variation001.phpt
+++ b/ext/spl/tests/SplFileObject/csv/SplFileObject_setCsvControl_variation001.phpt
@@ -24,6 +24,8 @@
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 39b526a86ab..815b06676e9 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->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 00000000000..41a9e31c8d7
--- /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 00000000000..175321c4477
--- /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 085fccd3265..4c866ea1f5f 100644
--- a/ext/spl/tests/bug69181.phpt
+++ b/ext/spl/tests/SplFileObject/csv/bug69181.phpt
@@ -12,14 +12,14 @@
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 27ce3f792c5..f85792451e9 100644
--- a/ext/spl/tests/SplFileObject/bug75917.phpt
+++ b/ext/spl/tests/SplFileObject/csv/bug75917.phpt
@@ -20,6 +20,11 @@
$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 a82713fb3a8..ac0d83ce152 100644
--- a/ext/spl/tests/SplFileObject/bug77024.phpt
+++ b/ext/spl/tests/SplFileObject/csv/bug77024.phpt
@@ -19,7 +19,10 @@
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 23123a34eb3..41783bcfa6e 100644
--- a/ext/spl/tests/SplFileObject/bug78976.phpt
+++ b/ext/spl/tests/SplFileObject/csv/bug78976.phpt
@@ -6,5 +6,8 @@
$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 7bd97a158c4..272f88f9cf5 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->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 3f79f9280f5..a9bf3121fbb 100644
--- a/ext/spl/tests/gh13685.phpt
+++ b/ext/spl/tests/SplFileObject/csv/gh13685.phpt
@@ -39,13 +39,21 @@
}
?>
---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 c6a0846e64f..fb57b43dea0 100644
--- a/ext/spl/tests/gh16217.phpt
+++ b/ext/spl/tests/SplFileObject/csv/gh16217.phpt
@@ -28,7 +28,8 @@ function uninitialized(): SplFileObject {
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