amenadiel / jpgraph
Composer 兼容,JpGraph 的全面重构,用于创建图表和图形的库
Requires
- php: >=7.2.0
- ext-gd: *
Requires (Dev)
- codeception/codeception: ^4.0
- codeception/module-asserts: ^1.1
- ergebnis/composer-normalize: ^2.13
- ergebnis/php-cs-fixer-config: ^2.13
- kint-php/kint: ^3.3
- monolog/monolog: ^2.0
- overtrue/phplint: ^2.3
- squizlabs/php_codesniffer: ^3.6
- symfony/dotenv: ^4.0 || ^5.0
- symfony/event-dispatcher: ^4.0 || ^5.0
- symfony/yaml: ^4.0 || ^5.0
This package is auto-updated.
Last update: 2024-08-25 07:28:18 UTC
README
JpGraph 社区版 是 JpGraph v3.5 的一个 Composer 兼容版本。随着时间的推移和增量重构,它已经变成了一个全新的库,拥有符合 PSR-1 和 PSR-2 的代码库,命名空间和文件夹层次结构支持 PSR-4 自动加载等。
我们现在与当前官方版本的关系最多也就是远亲。
重构是一个持续的努力,我们确保版本和新增内容不会影响我们的(已经很差的)指标。
JPGraph 社区版是什么?
如 他们的发布部分 所示,JPGraph 的发布周期中有一段六年的暂停,在这段时间里,我们中的一些人不得不通过编写代码来摆脱 PHP 5.x。因此,“社区版”诞生了。从那时起,这个库独立发展,并与官方包完全分离。
总的来说,JPGraph CE 依赖于 PHP 的繁荣生态系统。我们的目标是成为你可以无缝集成到你的应用程序中的简单依赖项。JPGraph CE 与 PHP 标准推荐 保持一致,该推荐由 PHP 框架互操作性小组 发布,并且当面临选择时,总是选择无差别的实现,而不是重新发明轮子的定制实现。大量代码已经根据此目的进行了修剪和重构,还有更多等待进行此类更改。
- 通过 PHP 流行的 Packagist 注册表 分发。
- 依赖于 Composer,因此你不需要手动下载或复制任何东西,也不需要自己检查平台和依赖项要求。
- PSR-4: 适用于自动加载的结构。无需在代码中求助于
require
或include
。 - 合理的回退机制以处理缺少字体或特定 GD 版本功能可用性。
- IDE 友好,支持自动完成和定义跳转,如果支持的话。
- 集成管道 检查新版本与不同 PHP 版本的兼容性。
- 预期新或重构的代码将遵循 PSR-1 和 PSR-2 编码标准(最终可能还包括 PSR-12)。
与原始 v3.5 代码库相比,我们还移除了仅限于 v3.5 专业版(例如条形码)的图形类型示例或不完整实现。
JPGraph CE 不是什么
- 这个库 不是官方的 JPGraph 包。官方包可以在 JPGraph 网站上的下载部分 下载。他们有一个功能齐全的免费版本,支持当前和旧版本的 PHP。
- JPGraph 的创建公司 Asial 以任何方式支持。
- 官方包的启用包装器
- 官方包的直接替换。我们不保证也不提供与官方包的任何功能兼容性。
需求和安装
此版本需要PHP v7.2.0+。如果您需要在较旧的PHP环境中安装此库包,请尝试
使用composer安装
composer require amenadiel/jpgraph:^4
如何使用
查看示例文件夹中的工作示例。
这些示例的工作方式与您应该使用此库的方式相同
-
运行
composer install
-
在脚本顶部包含
vendor/autoload.php
-
使用以下代码片段生成图形
require_once 'PATH/TO/vendor/autoload.php'; use Amenadiel\JpGraph\Graph; use Amenadiel\JpGraph\Plot; // Create the Pie Graph. $graph = new Graph\PieGraph(350, 250); $graph->title->Set("A Simple Pie Plot"); $graph->SetBox(true); $data = array(40, 21, 17, 14, 23); $p1 = new Plot\PiePlot($data); $p1->ShowBorder(); $p1->SetColor('black'); $p1->SetSliceColors(array('#1E90FF', '#2E8B57', '#ADFF2F', '#DC143C', '#BA55D3')); $graph->Add($p1); $graph->Stroke();
- 重要 在其内容(例如,图表)之前实例化图形(或图形子类)。这样做会将全局配置加载到全局范围内。是的,我们知道我们在全局范围内用数十个常量污染了全局作用域,但我们仍在重构 🤷。
通过执行以下步骤查看示例工作
- 运行
composer install
- 运行
make start
或php -S localhost:8000 -t Examples
- 在http://localhost:8000打开您的浏览器
更改配置
您可以通过在项目根目录中创建一个.env
文件来覆盖在config.inc.php中设置的某些配置。请参阅.env.example作为参考。
贡献者 ✨
感谢这些出色的人们 (emoji key)
此项目遵循all-contributors规范。欢迎任何类型的贡献!
愿望清单
- 使所有示例都工作(其中一半尚未从旧代码转换为新的PSR-4格式)
- 添加更多测试(我们需要测试更多类和方法,以及执行更多当前测试的断言)
- 添加对imagick的替代使用