承接 hhpack/file 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

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

hhpack/file

最新稳定版本:1.2.2

Composer 安装命令:

composer require hhpack/file

包简介

File utility library for Hack

README 文档

README

Latest Stable Version Build Status Dependency Status License

This package is a library for performing a simple to file operations hacklang.
Will provide a lightweight and simple api to the user.

Basic usage

Read processing of files can be realized by a simple code as follows.

Reading one line at a time.

use HHPack\File\FileLineStream;

$lineStream = FileLineStream::fromString('/path/to/text.log');

foreach ($lineStream as $line) {
	echo $line->length(), "\n"; //output length
	echo $line->value(), "\n"; //output content
};

Read the CSV file

use HHPack\File\FileLineStream;
use HHPack\File\SeparatedRecordStream;
use HHPack\File\ColumnSpecification;

$spec = new ColumnSpecification(',', '"');
$spec->addColumn(0, 'name');
$spec->addColumn(1, 'description');

$lineStream = FileLineStream::fromString(__DIR__ . '/example.csv');
$csvStream = new SeparatedRecordStream($lineStream, $spec);

foreach ($csvStream as $record) {
    echo $record->get('name'), "\n";
    echo $record->get('description'), "\n";
}

Customizing the reading of the record

Will create a parser that implements the ParseSpecification.
Then use the ParsedFileReader, and then apply the parser.

use HHPack\File\FileLineStream;
use HHPack\File\ParsedChunkStream;
use HHPack\File\ParseSpecification;

final class CustomRecordSpecification implements ParseSpecification<array<string>>
{
    public function parse(Chunk $line) : array<string>
    {
        return $line->split(',');
    }
}

$spec = new CustomRecordSpecification();
$lineStream = FileLineStream::fromString(__DIR__ . '/example.csv');
$csvStream = new ParsedChunkStream($lineStream, $spec);

foreach ($csvStream as $values) {
    echo $values[0], "\n";
    echo $values[1], "\n";
}

Run the test

You can run the test with the following command.

composer install
composer test

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2015-10-11