ts/reader

此包已被废弃且不再维护。未建议任何替代包。

可扩展的字符串和文件读取库。

此包尚未发布任何版本,且信息不多。


README

可扩展的字符串和文件读取库。

安装

使用 Composer 安装:composer require ts/reader:~2.1

直接使用实现

如果您确切知道要读取的内容,可以直接实例化一个读取实现。

use TS\Reader\Implementation\Json;

$jsonReader = new Json;

// Setting a json string
$jsonReader->setString('{ "key": "value" }');

// Setting a json file
$jsonReader->setFile(/* path to .json file */);

// Reading the data
$data = $jsonReader->readAll();

使用 ReaderContainer

您可以直接使用 reader 容器创建读取器,而不是直接实例化 reader 实现。

use TS\Reader\ReaderContainer;

$container = new ReaderContainer;

// Registration
$container->registerReader('TS\\Reader\\Implementation\\Json', ['json']);
// Register further implementations...

// Creation using a json string
$reader = $container->createForString('json', '{ "key": "value" }');

// Creation using a json file
$reader = $container->createForFile(/* path to .json file */);

// Reading the data
$data = $reader->readAll();

使用事件系统

您可以通过使用您喜欢的事件分发器来拦截或影响邮件发送器的生命周期的大部分内容。默认情况下使用 Symfony的事件分发组件

要利用 EventDispatcher 的全部功能,您需要在创建 ReaderContainer 或 reader 实现时显式传递一个实例。

use TS\Common\Event\EventDispatcher;
use TS\Reader\Implementation\Json;
use TS\Reader\ReaderContainer;

// Instantiate or get the EventDispatcher instance from somewhere, like a service/DI container
$dispatcher = new EventDispatcher;

// Pass it to the reader implementation or container
$jsonReader = new Json($dispatcher);
$container = new ReaderContainer($dispatcher);

您现在可以监听以下事件,这些事件在 TS\Reader\ReaderEvents 类中描述

  • INIT:在读取器的构造函数中触发。
  • READ:在读取后触发。
  • READ_COMPLETE:在读取完成后触发。
  • READ_LINE:在读取行时触发。

可用的实现

类型 类名称 Csv TS\Reader\Implementation\Csv Ini TS\Reader\Implementation\Ini Json TS\Reader\Implementation\Json Txt TS\Reader\Implementation\Txt Xml TS\Reader\Implementation\Xml Yaml TS\Reader\Implementation\Yaml

Excel 支持已分离到单独的 Composer 包 ts/reader-excel