jsanhuez/grids

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

该软件包的官方仓库似乎已不存在,因此该软件包已被冻结。

维护者

详细信息

github.com/jsanhuez/grids

源代码

v0.5.9 2017-02-14 16:00 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 jsanhuez/grids dev-master

附加组件

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

composer require jsanhuez/eloquent-data-processing dev-master

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

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

composer require view-components/doctrine-data-processing

作为独立项目安装

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

composer create-project jsanhuez/grids

这相当于先git克隆,然后执行"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
前端 由ZURB的Foundation 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在无流量时关闭工作者,并在第一次访问时再次启动。

在本地运行演示应用程序

要本地运行,您必须以dev-dependencies将此包作为独立项目安装。

然后,从包目录运行以下命令以启动web服务器

composer serve

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

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

文档

测试

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

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

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

composer test

检查代码风格的命令

composer cs

贡献

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

安全

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

许可证

© 2015—2016 Vitalii Stepanenko

许可协议:MIT许可证。

有关更多信息,请参阅许可证文件