nerdery/csv-bundle

该包已被放弃,不再维护。没有建议的替代包。

Symfony 扩展包,用于处理 CSV 文件。

安装: 190

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 5

分支: 1

开放问题: 0

类型:symfony-bundle

v0.0.3 2014-03-21 18:53 UTC

This package is not auto-updated.

Last update: 2016-03-12 15:34:57 UTC


README

这是一个在 Nerdery 内部开发用于读取、验证和解析 TSV & CSV 文件的扩展包。

安装(通过 Composer)

将以下内容添加到您的项目 composer.json 文件的 require 块中

"nerdery/csv-bundle": "v0.0.3"

基本用法

$readerOptions = array(
     CsvFileReaderOptions::OPTION_VALIDATION => $this->csvFileValidator,
     CsvFileReaderOptions::OPTION_PARSER     => $this->csvFileParser,
);

$csvFileReaderOptions = new CsvFileReaderOptions($readerOptions);

$reader =  new CsvFileReader(
    $csvFileReaderOptions,
    $this->eventDispatcher
);

$dataRows = $reader->parse(PATH_TO_FILE);

//Do some stuff with the data

CsvFileReaderOptions

该类负责配置文件读取器,设置分隔符,添加解析/验证等。

完整选项列表
  • CsvFileReaderOptions::OPTION_LENGTH

    用于指定 CSV 文件中最长行的长度。默认为 0,表示不设置最大值。

  • CsvFileReaderOptions::OPTION_DELIMITER

    用于表示列结束和下一列开始的字符。默认为 \t(制表符)。

  • CsvFileReaderOptions::OPTION_ENCLOSURE

    用于表示文本块的字符。默认为 "(双引号)。

  • CsvFileReaderOptions::OPTION_ESCAPE 用于转义保留/特殊字符的字符。默认为 \(反斜杠)。
  • CsvFileReaderOptions::OPTION_HEADER_POLICY

    指定如何处理标题的策略。默认为 CsvFileReaderOptions::HEADER_POLICY_SUB_DATA_OPTIONAL

    选项
    • CsvFileReaderOptions::HEADER_POLICY_NO_HEADER

      表示正在解析的文件中没有标题。

    • CsvFileReaderOptions::HEADER_POLICY_DISREGARD

      表示存在标题,但不进行处理。

    • CsvFileReaderOptions::HEADER_POLICY_SUB_DATA_OPTIONAL

      带有标题处理文件。表示数据列的数量 可能 会超过标题列的数量。对于列数可变的文件很有用。

    • CsvFileReaderOptions::HEADER_POLICY_SUB_DATA_REQUIRED

      带有标题处理文件。表示任何给定行中的数据列数量 不得 超过标题行的列数。

  • CsvFileReaderOptions::OPTION_USE_LABELS_AS_KEYS

    是否使用标题行的标签作为行数据数组的键。默认为 true

  • CsvFileReaderOptions::OPTION_VALIDATION

    用于验证文件的 AbstractCsvFileRowValidator 实现。默认为 null

  • CsvFileReaderOptions::OPTION_PARSER

    用于解析文件的 AbstractCsvFileRowParser 实现。默认为 null

CsvFileReader

库的主要操作类。处理遍历文件,将其推入关联数组(以及调用任何添加的解析/验证)。接受 CsvFileReaderOptions 和实现 EventDispatcherInterface 的类的实例。

AbstractCsvFileRowValidator

使用指南即将发布。在此期间,请参阅类文档。

AbstractCsvFileRowParser

使用指南即将发布。在此期间,请参阅类文档。