Polyfill
10 months ago
AbstractCsv.php
10 months ago
ByteSequence.php
10 months ago
CannotInsertRecord.php
10 months ago
CharsetConverter.php
10 months ago
ColumnConsistency.php
10 months ago
EncloseField.php
10 months ago
EscapeFormula.php
10 months ago
Exception.php
10 months ago
HTMLConverter.php
10 months ago
Info.php
10 months ago
InvalidArgument.php
10 months ago
MapIterator.php
10 months ago
RFC4180Field.php
10 months ago
Reader.php
10 months ago
ResultSet.php
10 months ago
Statement.php
10 months ago
Stream.php
10 months ago
SyntaxError.php
10 months ago
TabularDataReader.php
10 months ago
UnableToProcessCsv.php
10 months ago
UnavailableFeature.php
10 months ago
UnavailableStream.php
10 months ago
Writer.php
10 months ago
XMLConverter.php
10 months ago
functions.php
10 months ago
functions_include.php
10 months ago
TabularDataReader.php
100 lines
| 1 | <?php |
| 2 | |
| 3 | /** |
| 4 | * League.Csv (https://csv.thephpleague.com) |
| 5 | * |
| 6 | * (c) Ignace Nyamagana Butera <nyamsprod@gmail.com> |
| 7 | * |
| 8 | * For the full copyright and license information, please view the LICENSE |
| 9 | * file that was distributed with this source code. |
| 10 | */ |
| 11 | declare (strict_types=1); |
| 12 | namespace IAWPSCOPED\League\Csv; |
| 13 | |
| 14 | use Countable; |
| 15 | use Iterator; |
| 16 | use IteratorAggregate; |
| 17 | /** |
| 18 | * Represents a Tabular data. |
| 19 | * @internal |
| 20 | */ |
| 21 | interface TabularDataReader extends Countable, IteratorAggregate |
| 22 | { |
| 23 | /** |
| 24 | * Returns the number of records contained in the tabular data structure |
| 25 | * excluding the header record. |
| 26 | */ |
| 27 | public function count() : int; |
| 28 | /** |
| 29 | * Returns the tabular data records as an iterator object. |
| 30 | * |
| 31 | * Each record is represented as a simple array containing strings or null values. |
| 32 | * |
| 33 | * If the CSV document has a header record then each record is combined |
| 34 | * to the header record and the header record is removed from the iterator. |
| 35 | * |
| 36 | * If the CSV document is inconsistent. Missing record fields are |
| 37 | * filled with null values while extra record fields are strip from |
| 38 | * the returned object. |
| 39 | */ |
| 40 | public function getIterator() : Iterator; |
| 41 | /** |
| 42 | * Returns the header associated with the tabular data. |
| 43 | * |
| 44 | * The header must contains unique string or is an empty array |
| 45 | * if no header was specified. |
| 46 | * |
| 47 | * @return array<string> |
| 48 | */ |
| 49 | public function getHeader() : array; |
| 50 | /** |
| 51 | * Returns the tabular data records as an iterator object. |
| 52 | * |
| 53 | * Each record is represented as a simple array containing strings or null values. |
| 54 | * |
| 55 | * If the tabular data has a header record then each record is combined |
| 56 | * to the header record and the header record is removed from the iterator. |
| 57 | * |
| 58 | * If the tabular data is inconsistent. Missing record fields are |
| 59 | * filled with null values while extra record fields are strip from |
| 60 | * the returned object. |
| 61 | * |
| 62 | * @param array<string> $header an optional header to use instead of the CSV document header |
| 63 | */ |
| 64 | public function getRecords(array $header = []) : Iterator; |
| 65 | /** |
| 66 | * Returns the nth record from the tabular data. |
| 67 | * |
| 68 | * By default if no index is provided the first record of the tabular data is returned |
| 69 | * |
| 70 | * @param int $nth_record the tabular data record offset |
| 71 | * |
| 72 | * @throws UnableToProcessCsv if argument is lesser than 0 |
| 73 | */ |
| 74 | public function fetchOne(int $nth_record = 0) : array; |
| 75 | /** |
| 76 | * Returns a single column from the next record of the tabular data. |
| 77 | * |
| 78 | * By default if no value is supplied the first column is fetch |
| 79 | * |
| 80 | * @param string|int $index CSV column index |
| 81 | * |
| 82 | * @throws UnableToProcessCsv if the column index is invalid or not found |
| 83 | */ |
| 84 | public function fetchColumn($index = 0) : Iterator; |
| 85 | /** |
| 86 | * Returns the next key-value pairs from the tabular data (first |
| 87 | * column is the key, second column is the value). |
| 88 | * |
| 89 | * By default if no column index is provided: |
| 90 | * - the first column is used to provide the keys |
| 91 | * - the second column is used to provide the value |
| 92 | * |
| 93 | * @param string|int $offset_index The column index to serve as offset |
| 94 | * @param string|int $value_index The column index to serve as value |
| 95 | * |
| 96 | * @throws UnableToProcessCsv if the column index is invalid or not found |
| 97 | */ |
| 98 | public function fetchPairs($offset_index = 0, $value_index = 1) : Iterator; |
| 99 | } |
| 100 |