midorikocak/tabletools

在应用程序中,您必须处理表格。这个库为您提供了处理表格的一些实用工具。

v1.0 2020-02-03 23:48 UTC

This package is not auto-updated.

Last update: 2024-09-25 21:22:31 UTC


README

Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads

在应用程序中,您必须处理表格。这个库为您提供了处理表格的一些实用工具。

安装

通过 Composer

$ composer require midorikocak/tabletools

使用方法

您可以使用三种类型的表格访问和操作二维关联数据:DatabaseTableArrayTableCsvTable

表格的常见操作定义在 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)。有关更多信息,请参阅许可文件