nealio82 / avro-php
该软件包最新版本(0.1.2)的许可证信息不可用。
Apache Avro PHP库的实现,支持Composer、PSR-4自动加载、命名空间和类型提示方法参数
0.1.2
2017-01-30 13:18 UTC
This package is auto-updated.
Last update: 2024-09-10 00:22:00 UTC
README
这是一个基于Apache AVRO PHP库(v 1.8.1)的软件包。
核心逻辑保持不变,但我添加了Composer支持、PSR-4自动加载、方法类型提示、修复了错误(私有/公共成员访问)的属性访问器,并进行了一些其他整理。
用法
安装
$ composer require nealio82/avro-php
用法
基于官方库的示例
<?php use Avro\DataIO\DataIO; use Avro\DataIO\DataIOReader; use Avro\DataIO\DataIOWriter; use Avro\Datum\IODatumReader; use Avro\Datum\IODatumWriter; use Avro\IO\StringIO; use Avro\Schema\Schema; require_once('vendor/autoload.php'); $writers_schema_json = <<<_JSON { "name":"member", "type":"record", "fields": [ {"name":"member_id", "type":"int"}, {"name":"member_name", "type":"string"} ] } _JSON; $jose = array('member_id' => 1392, 'member_name' => 'Jose'); $maria = array('member_id' => 1642, 'member_name' => 'Maria'); $data = array($jose, $maria); $file_name = 'data.avr'; // Open $file_name for writing, using the given writer's schema $data_writer = DataIO::open_file($file_name, 'w', $writers_schema_json); // Write each datum to the file foreach ($data as $datum) { $data_writer->append($datum); } $data_writer->close(); // Open $file_name (by default for reading) using the writer's schema // included in the file $data_reader = DataIO::open_file($file_name); echo "from file:\n"; // Read each datum foreach ($data_reader->data() as $datum) { echo var_export($datum, true) . "\n"; } $data_reader->close(); $io = new StringIO(); $writers_schema = Schema::parse($writers_schema_json); $data_writer = new DataIOWriter($io, new IODatumWriter($writers_schema), $writers_schema); foreach ($data as $datum) { $data_writer->append($datum); } $data_writer->close(); $binary_string = $io->string(); // Load the string data string $read_io = new StringIO($binary_string); $data_reader = new DataIOReader($read_io, new IODatumReader()); echo "from binary string:\n"; foreach ($data_reader->data() as $datum) { echo var_export($datum, true) . "\n"; }