popphp / pop-data
此包已废弃,不再维护。没有建议替代包。
Pop PHP 框架的 Pop Data 组件
2.1.0p1
2017-03-02 15:18 UTC
Requires
- php: >=5.4.0
Requires (Dev)
- phpunit/phpunit: 4.6.*
Suggests
- ext-yaml: To use the Yaml conversion adapter.
README
生命结束
pop-data 组件 v2.1.0 现已生命结束。CSV 子组件已被分叉并推送到其自己的仓库
- popphp/pop-csv
概述
pop-data 提供了一种简化的方式来转换常见的数据类型。使用它,您可以轻松地将一些原生 PHP 数据转换成常见数据类型的序列化版本,例如 CSV、JSON、SQL、XML 或 YAML。或者,相反,您可以提供一些序列化数据,它将自动检测格式并将其转换为原生 PHP 数据。
pop-data 是 Pop PHP 框架 的一个组件。
安装
使用 Composer 安装 pop-data。
composer require popphp/pop-data
基本用法
序列化数据
$phpData = [ [ 'first_name' => 'Bob', 'last_name' => 'Smith' ], [ 'first_name' => 'Jane', 'last_name' => 'Smith' ] ]; $data = new Pop\Data\Data($phpData); $csvString = $data->serialize('csv'); $jsonString = $data->serialize('json'); $sqlString = $data->serialize('sql'); $xmlString = $data->serialize('xml'); $yamlString = $data->serialize('yaml');
$csvString 变量现在包含
first_name,last_name
Bob,Smith
Jane,Smith
$jsonString 变量现在包含
[
{
"first_name": "Bob",
"last_name": "Smith"
},
{
"first_name": "Jane",
"last_name": "Smith"
}
]
$sqlString 变量现在包含
INSERT INTO data (first_name, last_name) VALUES
('Bob', 'Smith'),
('Jane', 'Smith');
$xmlString 变量现在包含
<?xml version="1.0" encoding="utf-8"?>
<data>
<row>
<first_name>Bob</first_name>
<last_name>Smith</last_name>
</row>
<row>
<first_name>Jane</first_name>
<last_name>Smith</last_name>
</row>
</data>
$yamlString 变量现在包含
---
- first_name: Bob
last_name: Smith
- first_name: Jane
last_name: Smith
...
反序列化数据
您可以传递一个包含序列化数据的直接字符串或包含序列化数据字符串的文件给数据对象。它将检测是哪种类型并相应地解析。
字符串
$csv = new Pop\Data\Data($csvString); $phpData = $csv->unserialize();
文件
$xml = new Pop\Data\Data('/path/to/file.xml'); $phpData = $xml->unserialize();
在数据类型之间转换
$csv = new Pop\Data\Data($csvString); $xml = $csv->convert('xml');
写入文件
$phpData = [ ... ]; $data = new Pop\Data\Data($phpData); $data->serialize('csv'); $data->writeToFile('/path/to/file.csv');
输出到 HTTP
$phpData = [ ... ]; $data = new Pop\Data\Data($phpData); $data->serialize('csv'); $data->outputToHttp();
强制下载文件
$phpData = [ ... ]; $data = new Pop\Data\Data($phpData); $data->serialize('csv'); $data->outputToHttp('my-file.csv', true);