定制 marcojetson/tummy 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

marcojetson/tummy

Composer 安装命令:

composer require marcojetson/tummy

包简介

A fielded flat file parser

README 文档

README

A fielded flat file parser

Build Status Code Climate Test Coverage

Usage

Configuration

$formats = (new Tummy\Config\Factory())->create([
    'format1' => [
        'ident' => new Tummy\Record\Ident\Match('NEW'), // used for supporting multiple record formats in a single file
        'elements' => [
            [
                'length' => 3,
                'reference' => 'type',
                'required' => true,
            ],
            [
                'length' => 1, // elements w/o reference will be ignored
            ],
            [
                'length' => 16,
                'reference' => 'username',
                'paddingChar' => '-',
                'paddingDirection' => \STR_PAD_LEFT,
            ],
            [
                'length' => 8,
                'reference' => 'birthday',
                'converter' => new Tummy\Record\Element\Converter\DateTime('dmY'),
            ],
        ],
    ],
    'format2' => [
        'ident' => new Tummy\Record\Ident\Match('PWD'),
        'recordClass' => PwdRecord::class, // will use \stdClass if not specified
        'elements' => [
            [
                'length' => 3,
                'reference' => 'type',
            ],
            [
                'length' => 1,
            ],
            [
                'length' => 16,
                'reference' => 'username',
            ],
            [
                'length' => 16,
                'reference' => 'password',
            ],
        ],
    ],
]);

Parse

$parser = new Tummy\Parser($formats);

$records = $parser->parse([
    'NEW -----marcojetson31121985',
    'PWD marcojetson     peterete        ',
]);

var_dump($records);

// array(2) {
//   [0]=>
//   object(stdClass)#18 (3) {
//     ["type"]=>
//     string(3) "NEW"
//     ["username"]=>
//     string(11) "marcojetson"
//     ["birthday"]=>
//     object(DateTime)#19 (3) {
//       ["date"]=>
//       string(26) "1985-12-31 23:20:54.000000"
//       ["timezone_type"]=>
//       int(3)
//       ["timezone"]=>
//       string(13) "Europe/Berlin"
//     }
//   }
//   [1]=>
//   object(PwdRecord)#20 (3) {
//     ["type"]=>
//     string(3) "PWD"
//     ["username"]=>
//     string(11) "marcojetson"
//     ["password"]=>
//     string(8) "peterete"
//   }
// }

Compose

$record = new \stdClass();
$record->type = 'NEW';
$record->username = 'marcojetson';
$record->birthday = new \DateTime('1985-12-31');

$composer = new Tummy\Composer($formats['format1']);
echo $composer->compose([$record])[0];

// "NEW -----marcojetson31121985"

统计信息

  • 总下载量: 29.95k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: BSD-3-Clause
  • 更新时间: 2016-12-29

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固