diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/AbstractCsv.php | 43 | ||||
-rw-r--r-- | src/Reader.php | 19 | ||||
-rw-r--r-- | src/Writer.php | 19 |
3 files changed, 43 insertions, 38 deletions
diff --git a/src/AbstractCsv.php b/src/AbstractCsv.php index f493919..af77e5a 100644 --- a/src/AbstractCsv.php +++ b/src/AbstractCsv.php @@ -112,6 +112,49 @@ abstract class AbstractCsv implements JsonSerializable, IteratorAggregate } /** + * Create a {@link AbstractCsv} instance from another {@link AbstractCsv} object + * + * @param string $class_name the class to be instantiated + * @param string $open_mode the file open mode flag + * + * @return {@link AbstractCsv} + */ + protected function newInstance($class_name, $open_mode) + { + $csv = new $class_name($this->path, $open_mode); + $csv->delimiter = $this->delimiter; + $csv->enclosure = $this->enclosure; + $csv->escape = $this->escape; + $csv->encodingFrom = $this->encodingFrom; + + return $csv; + } + + /** + * Create a {@link Writer} instance from a {@link AbstractCsv} object + * + * @param string $open_mode the file open mode flag + * + * @return \League\Csv\Writer object + */ + public function newWriter($open_mode = 'r+') + { + return $this->newInstance('\League\Csv\Writer', $open_mode); + } + + /** + * Create a {@link Reader} instance from a {@link AbstractCsv} object + * + * @param string $open_mode the file open mode flag + * + * @return \League\Csv\Reader object + */ + public function newReader($open_mode = 'r+') + { + return $this->newInstance('\League\Csv\Reader', $open_mode); + } + + /** * Detect the CSV file delimiter * * @param integer $nb_rows diff --git a/src/Reader.php b/src/Reader.php index a8ad730..e0dea9d 100644 --- a/src/Reader.php +++ b/src/Reader.php @@ -244,23 +244,4 @@ class Reader extends AbstractCsv { return $this->newWriter($open_mode); } - - /** - * Create a {@link Writer} instance from a {@link Reader} object - * - * @param string $open_mode the file open mode flag - * - * @return \League\Csv\Writer object - */ - public function newWriter($open_mode = 'r+') - { - $csv = new Writer($this->path, $open_mode); - $csv->setDelimiter($this->delimiter); - $csv->setEnclosure($this->enclosure); - $csv->setEscape($this->escape); - $csv->setFlags($this->flags); - $csv->setEncodingFrom($this->encodingFrom); - - return $csv; - } } diff --git a/src/Writer.php b/src/Writer.php index 8602fed..f9027ae 100644 --- a/src/Writer.php +++ b/src/Writer.php @@ -328,23 +328,4 @@ class Writer extends AbstractCsv { return $this->newReader($open_mode); } - - /** - * Create a {@link Reader} instance from a {@link Writer} object - * - * @param string $open_mode the file open mode flag - * - * @return \League\Csv\Reader object - */ - public function newReader($open_mode = 'r+') - { - $csv = new Reader($this->path, $open_mode); - $csv->setDelimiter($this->delimiter); - $csv->setEnclosure($this->enclosure); - $csv->setEscape($this->escape); - $csv->setFlags($this->flags); - $csv->setEncodingFrom($this->encodingFrom); - - return $csv; - } } |