midorikocak / tabletools
在应用程序中,您必须处理表格。这个库为您提供了处理表格的一些实用工具。
v1.0
2020-02-03 23:48 UTC
Requires
- php: ~7.4
- ext-iconv: *
- ext-json: *
- ext-pdo: *
- eftec/bladeone: ^3.34
- league/csv: ^9.5
- midorikocak/arraytools: ^1.0
- midorikocak/nanodb: ^1.1.3
Requires (Dev)
- guzzlehttp/guzzle: ^6.5
- opsway/psr12-strict-coding-standard: ^0.3.0
- phpunit/phpunit: >=8.5
- squizlabs/php_codesniffer: ^3.5
- symfony/process: ^5.0
This package is not auto-updated.
Last update: 2024-09-25 21:22:31 UTC
README
在应用程序中,您必须处理表格。这个库为您提供了处理表格的一些实用工具。
安装
通过 Composer
$ composer require midorikocak/tabletools
使用方法
您可以使用三种类型的表格访问和操作二维关联数据:DatabaseTable
、ArrayTable
、CsvTable
。
表格的常见操作定义在 TableInterface
中。
<?php declare(strict_types=1); namespace midorikocak\tabletools; interface TableInterface { public function sort(string $key, $order = 'ASC'): self; public function columns($keys): self; public function filter(string $key, $value): self; public function search(string $key, $value): self; public function range(int $offset, ?int $limit = null): self; public function paginate(int $page = 0, int $pageSize = 10): self; public function run(): array; }
DatabaseTable
要使用 DatabaseTable
类,请注入一个实现 midorikocak/nanodb/DatabaseInterface
的对象。或者具有相同方法的简单 PDO 包装器。
$pdo = new PDO(); $db = new \midorikocak\nanodb\Database($pdo); $databaseTable = new \midorikocak\tabletools\DatabaseTable($db);
ArrayTable
如果您的数据已经在内存中,您可以使用 ArrayTable
。
$data = getArrayFromCsv('tests/small-name.csv'); $arrayTable = new ArrayTable($data);
CsvTable
如果您处理 CSV 文件,您可以将数据导入 CsvTable
。
$csvTable = new CsvTable('tests/small-name.csv');
列
仅获取指定的列。
$columns = $this->arrayTable->columns(['first_name', 'last_name'])->run();
过滤
过滤除指定值以外的行。
$filtered = $this->arrayTable->filter('username', 'midorikocak')->run();
排序
按指定列对表进行排序。
$sorted = $this->arrayTable->sort('username', 'DESC')->run();
搜索
按值搜索表。
$found = $this->arrayTable->search('username', 'kocak')->run();
范围
检索一系列项。
// Retrieves 10 items after 30th $range = $this->arrayTable->range(30, 10)->run();
分页
检索一页的项。
// Retrieves 50 more items after first 50 item. $page = $this->arrayTable->paginate(2, 50)->run();
变更日志
有关最近更改的更多信息,请参阅变更日志。
测试
$ composer test
贡献
安全性
如果您发现任何安全问题,请通过电子邮件mtkocak@gmail.com联系,而不是使用问题跟踪器。
鸣谢
许可协议
MIT 许可协议(MIT)。有关更多信息,请参阅许可文件。