2017 © Pedro Peláez
 

library excel-friendly-data-set

Excel friendly CsvDataSet for DBUnit

image

iamapen/excel-friendly-data-set

Excel friendly CsvDataSet for DBUnit

  • Thursday, October 20, 2016
  • by iamapen
  • Repository
  • 1 Watchers
  • 0 Stars
  • 173 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 9 Versions
  • 7 % Grown

The README.md

ExcelFriendlyDataSet

phpunit3~4/dbunit 用の DataSet や Operation の詰め合わせ。, (*1)

元々はExcelで扱いやすい UTF-16(LE+BOM) のCSVを phpunit/dbunit で使うための CsvDataSet がメインだったためこの名前になっているが、 今後はただの拡張の詰め合わせになる予定。, (*2)

※phpunit5~7 へ対応したものは別プロジェクトになりました。
今後はこちら iamapen/commentable-data-set, (*3)

Install

composer.json, (*4)

require-dev: {
  "iamapen/excel-friendly-data-set": ">=1.1.0"
}

Usage

DataSet

DataSet/CommentableDataSet

CSVの左n列をコメント列扱いとして、無視する(取り込まない) 機能を持つ CsvDataSet。
テストデータに対してのコメント列として使える。, (*5)

$ds = new Iamapen\ExcelFriendlyDataSet\Database\DataSet\CommentableCsvDataSet(",");
$ds->setIgnoreColumnCount(1);    // 1列目を無視

CSVの例, (*6)

最初の列はコメント,id,user_name
男性ユーザ,1,taro soramame
女性女性ユーザ,2,arare norimaki
1ヶ月以上ログインしてないユーザ,3,akane kimidori
削除されるユーザ,4,gajira norimaki

DataSet/ExcelCsvDataSet

最初に作成した DataSet。
Excelで扱いやすい UTF-16-LE(+BOM) のCSVを UTF-8 に変換しながら取り込むもの。
現在は出番はないと思われる。, (*7)

2007年作成当時は UTF-8 の CSVを満足に編集できるソフトが少ないという経緯で作られた。
しかし現在は LibreOffice-Calc 等のエディタでUTF8のCSVを容易に編集できるため、 わざわざExcel用に UTF-16 で保存しておくこともない。, (*8)

以下、旧 README のまま。, (*9)

Excelでは UTF-8 のcsvをまともに編集(とくに保存)ができないが、 UTF-16-LE(+BOM) にすれば「D&Dで開く」「Ctrl+S」で保存など比較的自然に編集でき、 テストデータにUnicode文字も使える。, (*10)

代わりにテストコード内で UTF-16 -> UTF-8 変換が必要になるので、これを行う。, (*11)

なおExcelからは"Unicode", sakuraエディタでは"Unicode", vimでは"utf16le", mbstringでは"UTF-16"で扱える。 新規CSV作成時はテキストエディタでUTF-16のファイルを作成してそれをExcelにD&Dするのが楽そう。, (*12)

xxTest.php, (*13)

$ds = new Iamapen\ExcelFriendlyDataSet\Database\DataSet\ExcelCsvDataSet();

Operation

Operation/MySqlBulkInsert

PHPUnit_Extensions_Database_Operation_Insert のバルクインサート版。
MySQL専用。(一応SQLiteでも動く), (*14)

あまりに入力CSVが大きいと、max_allowed_packet の制限にかかる可能性がある。これは課題。, (*15)

use Iamapen\ExcelFriendlyDataSet\Database\DataSet\CommentableCsvDataSet;
use Iamapen\ExcelFriendlyDataSet\Database\Operation\MySqlBulkInsert;

// DataSet
$ds = new CommentableCsvDataSet('PATH/TO/CSV');

// 実行
$operation = new MySqlBulkInsert();
$operation->execute($this->getConnection(), $ds);

注意点・課題

  • DataSet/ExcelCsvDataSet は現代では使うべきでないと思う。
    UTF-8 で保存して、UTF-8 対応のエディタで編集するのがよい。例えば LibreOffice の Calc でできる。
    Excelでやろうというのは、まともなエディタが存在しなかった時代の古いアプローチ。, (*16)

  • Operation/MySqlBulkInsert は、あまりに入力CSVが大きいと max_allowed_packet の制限にかかる可能性がある。, (*17)

  • PHP-5.3 サポートのために PHPUnit の 3.x と 4.x をベースにしている。
    おそらく PHPUnit-5 系では動作しない。, (*18)

  • 正式なプロダクトでの運用実績がないため、品質は趣味レベル。, (*19)

The Versions

20/10 2016

dev-master

9999999-dev https://github.com/iamapen/dbunit-ExcelFriendlyDataSet

Excel friendly CsvDataSet for DBUnit

  Sources   Download

MIT

The Requires

  • ext-pdo *
  • ext-mbstring *
  • php >=5.3.3

 

The Development Requires

by Yosuke Kushida

phpunit dbunit

20/10 2016

1.1.1

1.1.1.0 https://github.com/iamapen/dbunit-ExcelFriendlyDataSet

Excel friendly CsvDataSet for DBUnit

  Sources   Download

MIT

The Requires

  • php >=5.3.3
  • ext-pdo *
  • ext-mbstring *

 

The Development Requires

by Yosuke Kushida

phpunit dbunit

20/10 2016

1.1.x-dev

1.1.9999999.9999999-dev https://github.com/iamapen/dbunit-ExcelFriendlyDataSet

Excel friendly CsvDataSet for DBUnit

  Sources   Download

MIT

The Requires

  • php >=5.3.3
  • ext-pdo *
  • ext-mbstring *

 

The Development Requires

by Yosuke Kushida

phpunit dbunit

20/10 2016

1.1.0

1.1.0.0 https://github.com/iamapen/dbunit-ExcelFriendlyDataSet

Excel friendly CsvDataSet for DBUnit

  Sources   Download

MIT

The Requires

  • php >=5.3.3
  • ext-pdo *
  • ext-mbstring *

 

The Development Requires

by Yosuke Kushida

phpunit dbunit

29/07 2016

1.0.x-dev

1.0.9999999.9999999-dev https://github.com/iamapen/dbunit-ExcelFriendlyDataSet

Excel friendly CsvDataSet for DBUnit

  Sources   Download

MIT

The Requires

  • php >=5.3.1
  • ext-pdo *
  • ext-mbstring *

 

The Development Requires

by Yosuke Kushida

phpunit dbunit

21/07 2016

1.0.1

1.0.1.0 https://github.com/iamapen/dbunit-ExcelFriendlyDataSet

Excel friendly CsvDataSet for DBUnit

  Sources   Download

MIT

The Requires

  • php >=5.3.1
  • ext-pdo *
  • ext-mbstring *

 

The Development Requires

by Yosuke Kushida

phpunit dbunit

17/01 2014

0.0.x-dev

0.0.9999999.9999999-dev https://github.com/iamapen/dbunit-ExcelFriendlyDataSet

Excel friendly CsvDataSet for DBUnit

  Sources   Download

MIT

The Requires

  • php >=5.3.1
  • ext-pdo *
  • pear-openpear.org/stream_filter_mbstring = 0.0.7

 

The Development Requires

by Yosuke Kushida

phpunit dbunit

17/01 2014

0.0.2

0.0.2.0 https://github.com/iamapen/dbunit-ExcelFriendlyDataSet

Excel friendly CsvDataSet for DBUnit

  Sources   Download

MIT

The Requires

  • php >=5.3.1
  • ext-pdo *
  • pear-openpear.org/stream_filter_mbstring = 0.0.7

 

The Development Requires

by Yosuke Kushida

phpunit dbunit

17/01 2014

0.0.1

0.0.1.0 https://github.com/iamapen/dbunit-ExcelFriendlyDataSet

Excel friendly CsvDataSet for DBUnit

  Sources   Download

MIT

The Requires

  • php >=5.3.1
  • ext-pdo *
  • pear-openpear.org/stream_filter_mbstring = 0.0.7

 

The Development Requires

by Yosuke Kushida

phpunit dbunit