mczolko / atoc-feed-parser

ATOC数据馈送文件的解析器。

安装: 473

依赖项: 0

建议者: 0

安全: 0

星标: 0

关注者: 3

分支: 1

公开问题: 0

类型:软件包

dev-master 2015-07-14 22:07 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:31:29 UTC


README

此软件包允许您解析位于 http://data.atoc.org/data-download 的ATOCDATA馈送下载中包含的列车时刻表和票价文件。

它不会解析在ATOCSPECIFICATION文档中被标识为未维护的文件。

安装

您可以通过Composer安装此软件包。将以下行添加到您的composer.json的require对象中

"mczolko/atoc-feed-parser": "dev-master"

记录身份

已为每个记录添加一个字段,以便在使用例如存储库服务时轻松识别它。从记录身份可以映射记录到您的数据库中的表。记录身份由文件扩展名后跟(如果存在)RECORD_TYPE构成。

字段命名

为了创建更易于消费的信息,一些字段名称与规范不同,以保持一致。下表详细说明了此解析器预期的字段名称以及与规范中哪个字段相关。

使用方法

要获取解析器对象,请使用基于正在解析的文件名的Factory。

$filename = "RJFAF570.NDF";
$factory = new \JCoded\ATOCFeedParser\Factory();
$parser = $factory->getParser($filename);

然后使用解析器对象遍历文件的每一行。

while (($line = fgets($stream)) !== false) {
    //Skip the comments
    if (strpos($line, '/!!') !== false) {
        continue;
    }

    //Get the data
    try {
        $data = $parser->parseLine($line);

        //Do something with the data

    } catch (\JCoded\ATOCFeedParser\IncompatibleLineException $ex) {
        //Handle exception
    }
}

解析器将返回一个关联数组,键等于规范文档中的字段名称,如下例所示。规范文档可以在ATOCSite上找到。

[
    'TICKET_CODE' => '0AW',
    'RESTRICTION_CODE' => 'SV',
    'RESTRICTION_FLAG' => '0',
    'TOC_ID' => 'SN',
    'END_DATE' => '31122999',
    'START_DATE' => '30042013',
    'CHECK_TYPE' => '2',
    'AP_DATA' => '00000001',
    'BOOKING_TIME' => '1800',
    'RECORD_IDENTITY' => 'TAP'
]

依赖注入

当将依赖注入到您的类中时,有一些接口可以使用。

Factory接口

\JCoded\ATOCFeedParser\ParserFactoryInterface

返回解析器接口

\JCoded\ATOCFeedParser\File\ParserInterface