Skip to content

Commit eee534f

Browse files
committed
Deprecating syntactic sugar named constructors
1 parent 3d477ac commit eee534f

24 files changed

+207
-164
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ All Notable changes to `Csv` will be documented in this file
2525
- `ResultSet::createFromRecords` use `ResultSet::createFromTabularData`
2626
- `ResultSet::__construct` use `ResultSet::createFromTabularData`
2727
- `XMLConverter::convert` use `XMLConverter::import` instead
28+
- `XMLConverter::create` use `XMLConverter::__construct` instead
29+
- `HTMLConverter::create` use `HTMLConverter::__construct` instead
30+
- `Statement::create` use `Statement::__construct` instead
31+
- `FragmentFinder::create` use `FragmentFinder::__construct` instead
2832

2933
### Fixed
3034

docs/9.0/converter/html.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ $sth = $dbh->prepare("SELECT firstname, lastname, email FROM users LIMIT 2");
8585
$sth->setFetchMode(PDO::FETCH_ASSOC);
8686
$sth->execute();
8787

88-
$converter = (new HTMLConverter())
88+
$converter = new HTMLConverter()
8989
->table('table-csv-data', 'users')
9090
->tr('data-record-offset')
9191
->td('title')

docs/9.0/converter/index.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ title: Records conversion in popular formats
99

1010
The package provides classes which convert any collection of CSV records into:
1111

12-
- another collection encoded using the [CharsetConverter](/9.0/converter/charset/) class;
1312
- a `DOMDocument` object using the [XMLConverter](/9.0/converter/xml/) class;
1413
- an HTML table using the [HTMLConverter](/9.0/converter/html/) class;
1514
- an JSON document using the [JsonConverter](/9.0/converter/json/) class;

docs/9.0/converter/xml.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -100,15 +100,15 @@ $csv = Reader::createFromPath('/path/to/prenoms.csv', 'r');
100100
$csv->setDelimiter(';');
101101
$csv->setHeaderOffset(0);
102102

103-
$stmt = (new Statement())
103+
$stmt = new Statement()
104104
->where(function (array $record) {
105105
return 'Anaïs' === $record['prenoms'];
106106
})
107107
->offset(0)
108108
->limit(2)
109109
;
110110

111-
$converter = (new XMLConverter())
111+
$converter = new XMLConverter()
112112
->rootElement('csv')
113113
->recordElement('record', 'offset')
114114
->fieldElement('field', 'name')
@@ -167,15 +167,15 @@ $csv = Reader::createFromPath('/path/to/prenoms.csv', 'r');
167167
$csv->setDelimiter(';');
168168
$csv->setHeaderOffset(0);
169169

170-
$stmt = (new Statement())
170+
$stmt = new Statement()
171171
->where(function (array $record) {
172172
return 'Anaïs' === $record['prenoms'];
173173
})
174174
->offset(0)
175175
->limit(2)
176176
;
177177

178-
$converter = (new XMLConverter())
178+
$converter = new XMLConverter()
179179
->rootElement('csv')
180180
->recordElement('record', 'offset')
181181
->fieldElement('field', 'name')
@@ -233,7 +233,7 @@ header('Content-Type: text/xml; charset=UTF-8');
233233
header('Content-Description: File Transfer');
234234
header('Content-Disposition: attachment; filename="name-for-your-file.xml"');
235235

236-
XMLConverter::create()->download($reader);
236+
new XMLConverter()->download($reader);
237237
die;
238238
```
239239

@@ -256,7 +256,7 @@ header('Cache-Control: no-cache, no-store, must-revalidate');
256256
header('Pragma: no-cache');
257257
header('Expires: 0');
258258
//the filename will be the name of the downloaded xml as shown by your HTTP client!
259-
XMLConverter::create()->download($reader, 'name-for-your-file.xml');
259+
new XMLConverter()->download($reader, 'name-for-your-file.xml');
260260
die;
261261
```
262262

@@ -275,7 +275,7 @@ $reader->setHeaderOffset(0);
275275
header('Cache-Control: no-cache, no-store, must-revalidate');
276276
header('Pragma: no-cache');
277277
header('Expires: 0');
278-
XMLConverter::create()->download(
278+
new XMLConverter()->download(
279279
records: $reader,
280280
filename: 'generated_file.xml',
281281
encoding: 'iso-8859-1',

docs/9.0/extensions/doctrine.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ $csv = Reader::createFromPath('/path/to/my/file.csv');
2828
$csv->setHeaderOffset(0);
2929
$csv->setDelimiter(';');
3030

31-
$criteria = Statement::create()
31+
$criteria = (new Statement())
3232
->andWhere('prenom', '=', 'Adam')
3333
->orderByAsc('annee')
3434
->orderByDesc('foo')
@@ -114,7 +114,7 @@ $csv = Reader::createFromPath('/path/to/my/file.csv');
114114
$csv->setHeaderOffset(0);
115115
$csv->setDelimiter(';');
116116

117-
$stmt = Statement::create()
117+
$stmt = (new Statement())
118118
->where(fn (array $row): bool => isset($row['email']) && str_ends_with($row['email'], '@github.com'));
119119

120120
$collection = new RecordCollection($stmt->process($csv));

docs/9.0/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ $csv->setHeaderOffset(0); //set the CSV header offset
2828
$csv->setEscape(''); //required in PHP8.4+ to avoid deprecation notices
2929

3030
//get 25 records starting from the 11th row
31-
$stmt = Statement::create()
31+
$stmt = new Statement()
3232
->offset(10)
3333
->limit(25)
3434
;
@@ -140,7 +140,7 @@ $csv->setDelimiter(';');
140140
$csv->setHeaderOffset(0);
141141
$csv->setEscape(''); //required in PHP8.4+ to avoid deprecation notices
142142

143-
$converter = (new XMLConverter())
143+
$converter = new XMLConverter()
144144
->rootElement('csv')
145145
->recordElement('record', 'offset')
146146
->fieldElement('field', 'name')

docs/9.0/reader/resultset.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ foreach ($records as $record) {
8282
}
8383

8484
$reader = Reader::createFromFileObject($tmp)->setHeaderOffset(0);
85-
$stmt = Statement::create()->offset(1)->limit(1);
85+
$stmt = (new Statement())->offset(1)->limit(1);
8686
$result = $stmt->process($reader);
8787

8888
echo '<pre>', PHP_EOL;

docs/9.0/reader/statement.md

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ use League\Csv\Reader;
3434
use League\Csv\Statement;
3535

3636
$reader = Reader::createFromPath('/path/to/file.csv');
37-
$records = Statement::create()->process($reader);
37+
$records = (new Statement())->process($reader);
3838
// $records is a League\Csv\ResultSet instance
3939
```
4040

@@ -63,7 +63,7 @@ use League\Csv\Reader;
6363
use League\Csv\Statement;
6464

6565
$reader = Reader::createFromPath('/path/to/file.csv');
66-
$records = Statement::create()
66+
$records = (new Statement())
6767
->where(fn (array $record): bool => false !== filter_var($record[2] ?? '', FILTER_VALIDATE_EMAIL))
6868
->process($reader);
6969
// $records is a League\Csv\ResultSet instance
@@ -88,7 +88,7 @@ use League\Csv\Reader;
8888
use League\Csv\Statement;
8989

9090
$reader = Reader::createFromPath('/path/to/file.csv');
91-
$records = Statement::create()
91+
$records = (new Statement())
9292
->andWhere(1, '=', '10') //filtering is done of the second column
9393
->orWhere('birthdate', 'regexp', '/\d{1,2}\/\d{1,2}\/\d{2,4}/') //filtering is done on the `birthdate` column
9494
->whereNot('firstname', 'starts_with', 'P') //filtering is done case-sensitively on the first character of the column value
@@ -116,7 +116,7 @@ comparison is relaxed.
116116
```php
117117
use League\Csv\Statement;
118118

119-
$constraints = Statement::create()->orWhere('direction', 'not in', ['east', 'north']);
119+
$constraints = (new Statement())->orWhere('direction', 'not in', ['east', 'north']);
120120
```
121121

122122
The following parameter can only be used if the submitted value is a tuple
@@ -129,7 +129,7 @@ the range minimal value and the second argument, the range maximal value.
129129
```php
130130
use League\Csv\Statement;
131131

132-
$constraints = Statement::create()->andWhere('points', 'between', [3, 5]);
132+
$constraints = (new Statement())->andWhere('points', 'between', [3, 5]);
133133
```
134134

135135
The following parameters can only be used if the submitted value **and** the column value are `string`.
@@ -160,7 +160,7 @@ use League\Csv\Statement;
160160
$curDate = new DateTimeImmutable();
161161

162162
$reader = Reader::createFromPath('/path/to/file.csv');
163-
$records = Statement::create()
163+
$records = (new Statement())
164164
->andWhere(1, '=', '10') //filtering is done of the second column
165165
->orWhere('birthdate', fn (string $value): bool => DateTimeImmutable::createFromFormat('Y-m-d', $value) < $curDate) //filtering is done on the `birthdate` column
166166
->whereNot('firstname', 'starts_with', 'P') //filtering is done case-sensitively on the first character of the column value
@@ -180,7 +180,7 @@ use League\Csv\Reader;
180180
use League\Csv\Statement;
181181

182182
$reader = Reader::createFromPath('/path/to/file.csv');
183-
$records = Statement::create()
183+
$records = (new Statement())
184184
->andWhereColumn('created_at', '<', 'update_at') //filtering is done on both column value
185185
->whereNotColumn('fullname', 'starts_with', 4) //filtering is done on both column but the second column is specified via its offset
186186
->process($reader);
@@ -195,7 +195,7 @@ use League\Csv\Reader;
195195
use League\Csv\Statement;
196196

197197
$reader = Reader::createFromPath('/path/to/file.csv');
198-
$records = Statement::create()
198+
$records = (new Statement())
199199
->andWhereColumn('created_at', '<', 'update_at') //filtering is done on both column value
200200
->andWhereOffset(
201201
'fullname',
@@ -216,7 +216,7 @@ use League\Csv\Reader;
216216
use League\Csv\Statement;
217217

218218
$reader = Reader::createFromPath('/path/to/file.csv');
219-
$records = Statement::create()
219+
$records = (new Statement())
220220
->andWhereOffset('<', 100) //filtering is done on the offset value only
221221
->process($reader);
222222
// $records is a League\Csv\ResultSet instance
@@ -231,7 +231,7 @@ use League\Csv\Reader;
231231
use League\Csv\Statement;
232232

233233
$reader = Reader::createFromPath('/path/to/file.csv');
234-
$records = Statement::create()
234+
$records = (new Statement())
235235
->andWhereOffset(fn (string|int $value): bool => fmod((float) $value, 2) == 0)
236236
// filtering is done on the record offset value
237237
// records are kept only if the value is even.
@@ -279,7 +279,7 @@ use League\Csv\Reader;
279279
use League\Csv\Statement;
280280

281281
$reader = Reader::createFromPath('/path/to/file.csv');
282-
$records = Statement::create()
282+
$records = (new Statement())
283283
->orderBy(fn (mixed $rA, mixed $rB): int => strcmp(Query\Row::from($rB)->field(1) ?? '', Query\Row::from($rA)->field(1) ?? '')))
284284
->process($reader);
285285
// $records is a League\Csv\ResultSet instance
@@ -303,7 +303,7 @@ use League\Csv\Reader;
303303
use League\Csv\Statement;
304304

305305
$reader = Reader::createFromPath('/path/to/file.csv');
306-
$records = Statement::create()
306+
$records = (new Statement())
307307
->orderByDesc(1) //descending order according to the data of the 2nd column
308308
->orderByAsc('foo', strcmp(...)) //ascending order according a callback compare function
309309
->process($reader);
@@ -325,7 +325,7 @@ $sort = Query\Ordering\MultiSort::all(
325325
);
326326

327327
$reader = Reader::createFromPath('/path/to/file.csv');
328-
$records = Statement::create()->orderBy($sort)->process($reader);
328+
$records = (new Statement())->orderBy($sort)->process($reader);
329329
// Will return the same content as in the previous example.
330330
```
331331

@@ -343,7 +343,7 @@ use League\Csv\Reader;
343343
use League\Csv\Statement;
344344

345345
$reader = Reader::createFromPath('/path/to/file.csv');
346-
$records = Statement::create()
346+
$records = (new Statement())
347347
->limit(5)
348348
->offset(9)
349349
->process($reader);
@@ -366,7 +366,7 @@ use League\Csv\Reader;
366366
use League\Csv\Statement;
367367

368368
$reader = Reader::createFromPath('/path/to/file.csv');
369-
$records = Statement::create()
369+
$records = (new Statement())
370370
->select(1, 3, 'field')
371371
->process($reader);
372372
// $records is a League\Csv\ResultSet instance with only 3 fields
@@ -379,7 +379,7 @@ to query your CSV document as you want like in the following example.
379379
use League\Csv\Reader;
380380
use League\Csv\Statement;
381381

382-
$constraints = Statement::create()
382+
$constraints = (new Statement())
383383
->select('Integer', 'Text', 'Date and Time')
384384
->andWhere('Float', '<', 1.3)
385385
->orderByDesc('Integer')
@@ -410,7 +410,7 @@ In the event where you have a lot of fields to select but a few to remove you ma
410410
to select all the fields except the one you will specify as argument to the method:
411411

412412
```php
413-
$constraints = Statement::create()
413+
$constraints = (new Statement())
414414
->selectAllExcept('Integer')
415415
->andWhere('Float', '<', 1.3)
416416
->orderByDesc('Integer')
@@ -435,7 +435,7 @@ statement, both methods are mutually exclusive.</p>
435435
The `Statement::class` now allows the building or the CSV query using conditions.
436436

437437
```php
438-
$stmt = Statement::create();
438+
$stmt = (new Statement());
439439
if ($condition) {
440440
$stmt = $stmt->where(fn (array $row) => $row['column'] !== 'data');
441441
} else {
@@ -446,7 +446,7 @@ if ($condition) {
446446
becomes
447447

448448
```php
449-
$stmt = Statement::create()
449+
$stmt = (new Statement())
450450
->when(
451451
$condition,
452452
fn (Statement $q) => $q->where(fn (array $row) => $row['column'] !== 'data'),
@@ -516,7 +516,7 @@ use League\Csv\Reader;
516516
use League\Csv\FragmentFinder;
517517

518518
$reader = Reader::createFromPath('/path/to/file.csv');
519-
$finder = FragmentFinder::create();
519+
$finder = new FragmentFinder();
520520

521521
$finder->find('row=7-5;8-9', $reader); // return an Iterator<TabularDataReader>
522522
$finder->findFirst('row=7-5;8-9', $reader); // return an TabularDataReader

docs/9.0/reader/tabular-data-reader.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ Aboubakar,6,M,2004
9797
CSV;
9898

9999
$reader = Reader::createFromString($csv);
100-
$resultSet = Statement::create()->process($reader);
100+
$resultSet = (new Statement())->process($reader);
101101
$records = $resultSet->getRecords([3 => 'Year', 0 => 'Firstname', 4 => 'Yolo']);
102102
var_dump([...$records][0]);
103103
//returns something like this
@@ -157,7 +157,7 @@ use League\Csv\Statement;
157157
$reader = Reader::createFromPath('/path/to/my/file.csv', 'r');
158158
$reader->setHeaderOffset(0);
159159

160-
$stmt = Statement::create()
160+
$stmt = (new Statement())
161161
->offset(10)
162162
->limit(12)
163163
;
@@ -188,7 +188,7 @@ use League\Csv\Statement;
188188
$reader = Reader::createFromPath('/path/to/my/file.csv', 'r');
189189
$reader->setHeaderOffset(0);
190190

191-
$stmt = Statement::create()
191+
$stmt = (new Statement())
192192
->offset(10)
193193
->limit(12)
194194
;
@@ -228,7 +228,7 @@ use League\Csv\Reader;
228228
use League\Csv\Statement;
229229

230230
$reader = Reader::createFromPath('/path/to/my/file.csv', 'r');
231-
$resultSet = Statement::create()->process($reader);
231+
$resultSet = (new Statement())->process($reader);
232232

233233
$exists = $resultSet->exists(fn (array $records) => in_array('twenty-five', $records, true));
234234

@@ -244,7 +244,7 @@ The `fetchColumnByName` returns an Iterator containing all the values of a singl
244244
```php
245245
$reader = Reader::createFromPath('/path/to/my/file.csv');
246246
$reader->setHeaderOffset(0);
247-
$records = Statement::create()->process($reader);
247+
$records = (new Statement())->process($reader);
248248
foreach ($records->fetchColumnByName('e-mail') as $value) {
249249
//$value is a string representing the value
250250
//of a given record for the selected column
@@ -262,7 +262,7 @@ header offset.
262262
```php
263263
$reader = Reader::createFromPath('/path/to/my/file.csv');
264264
$reader->setHeaderOffset(0);
265-
$records = Statement::create()->process($reader);
265+
$records = (new Statement())->process($reader);
266266
foreach ($records->fetchColumnByOffset(3) as $value) {
267267
//$value is a string representing the value
268268
//of a given record for the selected column
@@ -295,7 +295,7 @@ sacha
295295
EOF;
296296

297297
$reader = Reader::createFromString($str);
298-
$records = Statement::create()->process($reader);
298+
$records = (new Statement())->process($reader);
299299

300300
foreach ($records->fetchPairs() as $firstname => $lastname) {
301301
// - first iteration
@@ -444,7 +444,7 @@ use League\Csv\Reader;
444444
use League\Csv\Statement;
445445

446446
$reader = Reader::createFromPath('/path/to/my/file.csv', 'r');
447-
$resultSet = Statement::create()->process($reader);
447+
$resultSet = (new Statement())->process($reader);
448448

449449
$records = $resultSet->slice(10, 25);
450450

@@ -512,7 +512,7 @@ $tabularData = $reader
512512

513513
//is equivalent to
514514

515-
$tabularData = Statement::create()
515+
$tabularData = (new Statement())
516516
->offset(0)
517517
->limit(10)
518518
->process($reader, [

0 commit comments

Comments
 (0)