diff options
author | Ignace Nyamagana Butera <nyamsprod@gmail.com> | 2014-05-19 10:44:15 +0200 |
---|---|---|
committer | Ignace Nyamagana Butera <nyamsprod@gmail.com> | 2014-05-19 10:44:15 +0200 |
commit | 6cf9e7be099a8fd17ad7d53726fea36833a0a7b6 (patch) | |
tree | 2c83c2e32f4e4d613fbef458f6a2893827bf1bc5 /src | |
parent | c2ad46a6b2f67ba9bc092b4ed6ee1ec0c3976d0f (diff) | |
download | csv-6cf9e7be099a8fd17ad7d53726fea36833a0a7b6.zip csv-6cf9e7be099a8fd17ad7d53726fea36833a0a7b6.tar.gz csv-6cf9e7be099a8fd17ad7d53726fea36833a0a7b6.tar.bz2 |
adding AbstractCsv::newInstance
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; - } } |