findologic/libflexport
Composer 安装命令:
composer require findologic/libflexport
包简介
FINDOLOGIC export toolkit for XML and CSV data export
README 文档
README
Table of Contents
Synopsis
This project provides an export library for XML and CSV generation according to the FINDOLOGIC export patterns.
- XML https://docs.findologic.com/doku.php?id=xml_export_documentation:XML_2_format
- CSV https://docs.findologic.com/doku.php?id=csv_export_documentation:csv_2_format
- Note that CSV support is still relatively new. Consider it beta-quality.
Export recommendation
Using the XML export is recommended by FINDOLOGIC. The XML is easier to read and has some advantages over the CSV export like:
- No encoding issues as the encoding attribute is provided in the XML response
<?xml version="1.0" encoding="UTF-8"?>. - Validation is more reliable.
- Simple escaping of content using the
<![CDATA[...]]>-tag. - Standardized structure.
- Dynamically extract the products from the database via
startandcountparameter in the url. - No limited file size for XML because of pagination.
- Using multiple groups per product.
The key advantage for CSV is that it is possible to use way more groups than for XML. On the other hand:
- Groups only regulate visibility - it's not possible to show different values per group.
- The format is prone to encoding issues if non-UTF-8 data is fed into it.
- Total export size is limited by file size, while XML pagination theoretically allows exports of arbitrary size.
Limitations
Currently, only input text encoded in UTF-8 is supported. To use this library with other types of encoding, one of the following is necessary:
- Convert all text to UTF-8 prior to passing it to
libflexport. - Use the XML exporter and modify the library to change the XML header to contain the required encoding.
- FINDOLOGIC is capable of handling most encodings, but only with XML.
Basic usage
Setup
- Include as composer dependency using
composer require findologic/libflexport - Load
./vendor/autoload.phpinto the project
XML export
require_once './vendor/autoload.php'; use FINDOLOGIC\Export\Exporter; $exporter = Exporter::create(ExporterType::XML); $item = $exporter->createItem('123'); $item->addName('Test'); $item->addUrl('http://example.org/test.html'); $item->addPrice(13.37); // Alternative long form: // $name = new Name(); // $name->setValue('Test'); // $item->setName($name); // $url = new Url(); // $url->setValue('http://example.org/test.html'); // $item->setUrl($url); // $price = new Price(); // $price->setValue(13.37); // $item->setPrice($price); $xmlOutput = $exporter->serializeItems([$item], 0, 1, 1);
CSV export
require_once './vendor/autoload.php'; use FINDOLOGIC\Export\Exporter; $exporter = Exporter::create(ExporterType::CSV); $item = $exporter->createItem('123'); $item->addPrice(13.37); $item->addName('Test'); $item->addUrl('http://example.org/test.html'); // Alternative long form: // $name = new Name(); // $name->setValue('Test'); // $item->setName($name); // $url = new Url(); // $url->setValue('http://example.org/test.html'); // $item->setUrl($url); // $price = new Price(); // $price->setValue(13.37); // $item->setPrice($price); // Date is mandatory for CSV. $item->addDateAdded(new \DateTime()); $csvOutput = $exporter->serializeItems([$item], 0, 1, 1);
Examples
For more specific examples, please have a look at the examples directory.
Compatibility
The status of the major versions of libflexport is outlined below. Version numbers generally follow semantic versioning principles.
| Version | Branch | PHP support | Receives bug fixes | Receives enhancements | End of life |
|---|---|---|---|---|---|
| 3.X | develop | >=8.1 | ✔️ | ✔️ | Not in the foreseeable future |
| 2.X | 2.x | >=7.1 | ✔️ | ❌ | Not in the foreseeable future |
| 1.X | 1.x | 5.6 - 7.3 | ✔️ | ❌ | TBD |
| 0.X | ❌ | 5.6 - 7.0 | ❌ | ❌ | 2017-11-24 |
All versions will most likely remain available for as long as the infrastructure to do so exists.
Contributors
See contribution guide.
findologic/libflexport 适用场景与选型建议
findologic/libflexport 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 172.71k 次下载、GitHub Stars 达 4, 最近一次更新时间为 2017 年 05 月 26 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 findologic/libflexport 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 findologic/libflexport 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 172.71k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 5
- 点击次数: 18
- 依赖项目数: 3
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2017-05-26