交接/pop-data

Pop PHP 框架的 Pop Data 组件,这是一个副本版本。

2.1.0p2 2017-07-26 07:19 UTC

This package is auto-updated.

Last update: 2024-09-24 04:17:51 UTC


README

已停止维护

版本 2.1.0 的 pop-data 组件现在已停止维护。CSV 子组件已被分支并推入其自己的仓库

  • popphp/pop-csv

Build Status Coverage Status

概览

pop-data 提供了一种简化的方式来转换常见的数据类型。使用它,你可以轻松地给它一些原生的 PHP 数据,并快速将其转换为常见数据类型的序列化版本,例如 CSV、JSON、SQL、XML 或 YAML。或者相反,你可以给它一些序列化数据,它将自动检测格式并将其转换为原生 PHP 数据。

pop-dataPop 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);

注意

此副本用作遗留库。