演示/网格

该软件包已被废弃,不再维护。作者建议使用 view-components/grids 软件包。

适用于 PHP 的灵活框架无关数据网格

v0.5.10 2021-07-06 16:23 UTC

README

Release Scrutinizer Code Quality Build Status Code Coverage

适用于 PHP 的灵活框架无关数据网格

该项目是 nayjest/grids(Laravel 数据网格框架)的后继者。

该软件包在后台和前端框架方面都是框架无关的,即

  • 您可以使用它与任何 PHP 框架或无需框架。集成包将帮助您使用流行 PHP 框架的功能。
  • 不用担心将标记与您喜欢的 CSS 框架匹配。只需描述网格结构和添加可用的自定义选项之一,它将应用针对标记的特定框架修改。

项目状态:beta 自 2016-03-31

有问题? 在问题跟踪器中提问.

屏幕截图

screenshot

目录

功能

  • 灵活的组件架构
  • 可以与各种数据源一起使用(PHP 数组、PDO 数据库连接、Laravel ActiveRecord 或 QueryBuilder、Doctrine DBAL 查询构建器等)
  • 主题/自定义/样式
  • 可以与任何 PHP 框架一起使用,为流行框架提供了集成包。
  • 不用担心将标记与您喜欢的 CSS 框架匹配。只需描述网格结构和组件,然后应用自定义。此软件包在前端框架方面是框架无关的,并附带适用于 Twitter Bootstrap、Foundation、Semantic UI 的主题
  • 许多可用的组件:过滤器、排序、总计、行详情、分页、CSV 导出
  • 对开发者友好(文档正在编写中)

要求

  • PHP 5.5+(hhvm 及 php7 支持)

安装

在现有项目中安装

安装组件的推荐方法是使用 Composer

从您的项目文件夹中运行以下命令

composer require view-components/grids

附加组件

如果您使用 Laravel,请安装 eloquent-data-processing 软件包。

composer require view-components/eloquent-data-processing

这将允许您将Eloquent模型和查询构建器实例用作网格的数据源。

对于使用Doctrine的用户,有doctrine-data-processing包可用。

composer require view-components/doctrine-data-processing

作为独立项目安装

要在您的系统上运行此包捆绑的测试和演示应用程序,您需要将其作为独立项目安装。

composer create-project view-components/grids

这相当于先进行git clone,然后执行“composer install”来安装供应商。Composer将自动运行'post-create-project-cmd'命令,这将调用交互式安装。

如果您想使用默认设置并静默运行,只需添加--no-interaction选项。

如果您已经克隆了此仓库,或者想重新安装包,请导航到包文件夹并运行不带包名称的composer create-project命令。

如果您确定不需要重新安装composer依赖项,您只需执行捆绑的安装器:composer run post-create-project-cmd

此类安装有额外的需求

  • ext-curl
  • ext-pdo_sqlite

集成

区域 框架 组件 状态
后端 Laravel(Eloquent) Eloquent数据提供程序 view-components/eloquent-data-processing 准备就绪,稳定
后端 Laravel(Blade) Blade渲染器 计划中
后端 Symfony(Twig) Twig渲染器 计划中
后端 Zend Framework 2/3 * 计划中
后端 Yii 2 * 计划中
后端 Doctrine(DBAL) Doctrine(DBAL)数据提供程序 view-components/doctrine-dbal-processing 准备就绪,Beta
后端 任何 PHP数组数据提供程序 捆绑 准备就绪,不稳定
后端 任何 PDO数据提供程序 捆绑 准备就绪,不稳定
前端 Twitter Bootstrap Bootstrap视图定制 捆绑 准备就绪,Beta
前端 Foundation by ZURB Foundation视图定制 捆绑 准备就绪,不稳定
前端 Semantic UI Semantic UI视图定制 捆绑 准备就绪,不稳定
前端 Yahoo Pure Yahoo Pure视图定制 计划中
前端 UIKit UIKit视图定制 计划中

用法

基本示例

$provider = new DbTableDataProvider($pdoConnection, 'my_table');
$input = new InputSource($_GET);

// create grid
$grid = new Grid(
    $provider,
    // all components are optional, you can specify only columns
    [
        new TableCaption('My Grid'),
        new Column('id'),
        new Column('name'),
        new Column('role'),
        new Column('birthday'),
        (new Column('age'))
            ->setValueCalculator(function ($row) {
                return DateTime
                    ::createFromFormat('Y-m-d', $row->birthday)
                    ->diff(new DateTime('now'))
                    ->y;
            })
            ->setValueFormatter(function ($val) {
                return "$val years";
            })
        ,
        new DetailsRow(new SymfonyVarDump()), // when clicking on data rows, details will be shown
        new PaginationControl($input->option('page', 1), 5), // 1 - default page, 5 -- page size
        new PageSizeSelectControl($input->option('page_size', 5), [2, 5, 10]), // allows to select page size
        new ColumnSortingControl('id', $input->option('sort')),
        new ColumnSortingControl('birthday', $input->option('sort')),
        new FilterControl('name', FilterOperation::OPERATOR_LIKE, $input->option('name')),
        new CsvExport($input->option('csv')), // yep, that's so simple, you have CSV export now
        new PageTotalsRow([
            'id' => PageTotalsRow::OPERATION_IGNORE,
            'age' => PageTotalsRow::OPERATION_AVG
        ])
    ]
);

// now you can render it:
echo $grid->render();
// or even this way:
echo $grid;

//  but also you can add some styling:
$customization = new BootstrapStyling();
$customization->apply($grid);
echo $grid;

演示应用程序

此包捆绑了演示应用程序。

演示的源代码可在此处找到

部署到Heroku的运行演示

Travis CI会自动将包含此包的Web应用程序部署到Heroku。

您可以在以下位置看到运行中的演示:http://vc-grids.herokuapp.com/

首次运行可能较慢,因为Heroku在没有流量时会关闭工作进程,并在首次访问时再次启动。

在本地运行演示应用程序

要在本地运行,您必须将此包作为具有开发依赖项的独立项目安装。

然后,使用以下命令从包目录运行Web服务器

composer serve

此命令使用捆绑的PHP Web服务器。

现在,在浏览器中打开http://localhost:8000(对于Windows用户,在启动Web服务器后将会自动打开)。

文档

测试

本应用包含使用PHPUnit创建的单元测试和验收测试。

要在本地运行测试,您必须将此软件包作为独立项目安装,并包含开发依赖项。

运行单元测试和验收测试的命令

composer test

检查代码风格的命令

composer cs

贡献

请参阅贡献指南行为准则以获取详细信息。

安全

如果您发现任何与安全相关的问题,请通过mail@vitaliy.in发送电子邮件,而不是使用问题跟踪器。

许可

© 2015—2016 Vitalii Stepanenko

许可协议为MIT许可证。

请参阅许可文件以获取更多信息。