khill/lavacharts

Google Chart API的PHP包装库

3.1.14 2020-11-23 12:29 UTC

README

Total Downloads License Minimum PHP Version Gitter PayPal

Lavacharts 是一个为PHP5.4+提供的图表库,它封装了Google Chart API。

稳定版: Current Release Build Status Coverage Status

开发者版: Development Release Build Status Coverage Status

开发者注意

如果看到自上次更新以来已经“数年”,请不要气馁,而是认为Lavacharts已经进入了一个“稳定”状态,需要我较少的调整。我非常愿意添加新功能,但我的责任让我在项目上的时间很少。如果需要,我会处理问题、回答问题、调试并帮助。Lavacharts不是虚幻的产品!😄

包功能

  • 更新了! Laravel 5.5+ 自动发现
  • Google支持的所有自定义图表选项,Lavacharts也应支持。只需使用图表构造函数分配任何您想要的定制选项即可!
  • 请访问Google的图表画廊获取有关可用选项的详细信息
  • 用于与图表进行客户端交互的定制JavaScript模块
    • AJAX数据重新加载
    • 获取图表
    • 事件集成
  • 列格式化程序 & 角色
  • Laravel的Blade模板扩展
  • Symfony的Twig模板扩展
  • Carbon支持日期/日期时间/时间点列
  • 现在支持22种图表!
    • 注释、区域、柱状图、气泡图、日历、蜡烛图、柱状图、组合图、甘特图、仪表盘、地理图、直方图、折线图、组织图、饼图、桑基图、散点图、步进区域图、表格、时间线、树状图和词树!

有关完整文档,请访问lavacharts.com

升级指南: 从2.5.x迁移到3.0.x

要参与贡献,可以在这里找到一份实用的指南:https://github.com/kevinkhill/lavacharts/blob/master/.github/CONTRIBUTING.md

安装

在你的项目的 main composer.json 文件中,添加以下行到需求中

"khill/lavacharts": "^3.1"

运行 Composer 安装 Lavacharts

$ composer update

框架无关

如果你在使用 Silex、Lumen 或自己的 Composer 项目时使用 Lavacharts,那就没问题!只需确保在项目中包含:require 'vendor/autoload.php'; 并创建 Lavacharts 的实例:$lava = new Khill\Lavacharts\Lavacharts;

Laravel

为了将 Lavacharts 集成到 Laravel 中,已包含 ServiceProvider。

Laravel ~5.5

感谢 5.5 版中新增的出色新功能 Package Auto-Discovery,你无需注册即可开始使用 👍

配置

要修改 Lavacharts 的默认配置,例如 datetime 格式用于 datatables 或添加你的地图 API 密钥... 使用 php artisan vendor:publish --tag=lavacharts 发布配置

Laravel ~5.4

通过在 config/app.php 中相应的数组中添加以下行来在你的应用程序中注册 Lavacharts

<?php
// config/app.php

// ...
'providers' => [
    // ...

    Khill\Lavacharts\Laravel\LavachartsServiceProvider::class,
],

// ...
'aliases' => [
    // ...

    'Lava' => Khill\Lavacharts\Laravel\LavachartsFacade::class,
]

配置

要修改 Lavacharts 的默认配置,例如 datetime 格式用于 datatables 或添加你的地图 API 密钥... 使用 php artisan vendor:publish --tag=lavacharts 发布配置

Laravel ~4

通过在 app/config/app.php 中相应的数组中添加以下行来在你的应用程序中注册 Lavacharts

<?php
// app/config/app.php

// ...
'providers' => array(
    // ...

    "Khill\Lavacharts\Laravel\LavachartsServiceProvider",
),

// ...
'aliases' => array(
    // ...

    'Lava' => "Khill\Lavacharts\Laravel\LavachartsFacade",
)

配置

要修改 Lavacharts 的默认配置,例如 datetime 格式用于 datatables 或添加你的地图 API 密钥... 使用 php artisan config:publish khill/lavacharts 发布配置

Symfony

该包还包括一个 Bundle,以使 Lavacharts 能够作为可以从容器中拉取的服务。

添加 Bundle

将 Bundle 添加到 app/AppKernel.php 中的 registerBundles 方法

<?php
// app/AppKernel.php

class AppKernel extends Kernel
{
    // ..

    public function registerBundles()
    {
        $bundles = array(
            // ...

            new Khill\Lavacharts\Symfony\Bundle\LavachartsBundle(),
        );
    }
}

导入配置

将服务定义添加到 app/config/config.yml 文件

imports:
  # ...
  - { resource: "@LavachartsBundle/Resources/config/services.yml"

用法

图表的创建分为两部分:首先,在路由或控制器中定义图表、数据表和输出的自定义;

其次,在视图中使用一行代码,库将为你输出所有必要的 JavaScript 代码。

基本示例

以下是最简单图表的示例:一个包含一个数据集和标题的折线图,没有任何配置。

控制器

设置你的第一个图表。

数据

$data = $lava->DataTable();

$data->addDateColumn('Day of Month')
     ->addNumberColumn('Projected')
     ->addNumberColumn('Official');

// Random Data For Example
for ($a = 1; $a < 30; $a++) {
    $rowData = [
      "2017-4-$a", rand(800,1000), rand(800,1000)
    ];

    $data->addRow($rowData);
}

数组也适用于 datatables...

$data->addColumns([
    ['date', 'Day of Month'],
    ['number', 'Projected'],
    ['number', 'Official']
]);

或者你可以使用 use \Khill\Lavacharts\DataTables\DataFactory 以另一种方式创建 DataTables

图表选项

使用 Google 文档中提供的任何选项来自定义你的图表。将对象分解成数组并传递给图表。

$lava->LineChart('Stocks', $data, [
    'title' => 'Stock Market Trends',
    'animation' => [
        'startup' => true,
        'easing' => 'inAndOut'
    ],
    'colors' => ['blue', '#F4C1D8']
]);

输出 ID

图表需要输出到页面上的一个 div 中,因此需要一个 div 的 HTML ID。这里是你放置图表的位置 <div id="stocks-div"></div>

  • 如果没有为图表设置选项,则第三个参数是输出 ID
$lava->LineChart('Stocks', $data, 'stocks-div');
  • 如果设置了图表的选项,则 ID 可以包含在选项中
$lava->LineChart('Stocks', $data, [
    'elementId' => 'stocks-div'
    'title' => 'Stock Market Trends'
]);
  • 第四个参数也可以工作
$lava->LineChart('Stocks', $data, [
    'title' => 'Stock Market Trends'
], 'stocks-div');

视图

将主 Lavacharts 实例传递到视图中,因为所有定义的图表都存储在其中,并渲染!

<?= $lava->render('LineChart', 'Stocks', 'stocks-div'); ?>

或者如果你有多个图表,可以使用 L 来压缩视图代码

<?= $lava->renderAll(); ?>

更新日志

完整的更新日志可以在这里找到:https://github.com/kevinkhill/lavacharts/wiki/Changelog

随着时间的星标

Stargazers over time