ksf-bank-import/csv-parsers
Composer 安装命令:
composer require ksf-bank-import/csv-parsers
包简介
Generic CSV Parser for Bank Statement Imports
README 文档
README
A PHP-based suite of CSV parsers for banking and credit card statements (WMMC, BCR, ING, RBC), designed for integration into the ksf_bank_import system.
Features
- Multi-Bank Support: Dedicated parsers for WMMC, BCR, ING, and RBC bank statement formats.
- Generic CSV Engine: Abstract
GenericCsvParserwith semi-auto column recognition via alias-based header mapping. - ContactData Integration: Uses
ksfraser/contact-dtofor standardized payee/contact handling via\Ksfraser\Contact\DTO\ContactData. - Statement Management: Groups transactions into statements automatically.
- Standardized Output: Returns
StatementandTransactionentity objects for easy integration. - State Machine Processing: Handles multi-line and split transactions (e.g., GnuCash style).
- Requirement Traceability: Follows AGENTS.md standards for documentation and mapping.
Installation
composer require ksf-bank-import/csv-parsers
This will also install the ksfraser/contact-dto dependency automatically.
Usage
use Parsers\Parsers\WmmcCsvParser; use Parsers\Parsers\BcrCsvParser; use Parsers\Parsers\IngCsvParser; use Parsers\Parsers\RbcCsvParser; // Example: WMMC Parser $parser = new WmmcCsvParser(); $statements = $parser->parse($csvContent); // Each Statement contains Transactions with ContactData payees foreach ($statements as $statement) { foreach ($statement->getTransactions() as $transaction) { $payee = $transaction->getPayee(); // Returns \Ksfraser\Contact\DTO\ContactData or null echo $payee->name; } }
Requirements
- PHP 7.3+
- Composer dependencies:
ksfraser/contact-dto(^0.1.0) — ContactData DTO for payee handling
Architecture
This project uses a polymorphic parser hierarchy:
- Base:
src/Parsers/GenericCsvParser.php— Abstract CSV engine with header detection, column mapping, andmapToContactField(). - Parsers:
src/Parsers/— Bank-specific implementations (WMMC, BCR, ING, RBC) extending the generic engine. - Entities:
src/Entities/— Domain objects:Statement,Transaction,BankAccount,Balance,Currency. - ContactData: Payee data uses
\Ksfraser\Contact\DTO\ContactDatafrom theksfraser/contact-dtopackage.
For detailed architecture, see Project_Architecture_Blueprint.md.
Testing
./vendor/bin/phpunit
- 62 tests, 1080 assertions, 265 lines covered — 100% code coverage
- Test Organization:
tests/Parsers/(parser tests),tests/Entities/(entity tests),tests/GlobalIntegrationTest.php(integration) - Fixtures: Anonymized test CSVs in
tests/fixtures/
Development
Follow the standards in AGENTS.md when contributing.
- SOLID Principles: Each parser has single responsibility; extend
GenericCsvParserfor new banks. - TDD: Write tests before implementing features (Red-Green-Refactor).
- Documentation: Include PHPDoc with UML diagrams and
@requirementtags.
ksf-bank-import/csv-parsers 适用场景与选型建议
ksf-bank-import/csv-parsers 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 0 次下载、GitHub Stars 达 0, 最近一次更新时间为 2026 年 03 月 20 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 ksf-bank-import/csv-parsers 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 ksf-bank-import/csv-parsers 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 40
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-03-20