szymach / c-pchart
将 "pChart" 库移植到 PHP 5+
Requires
- php: ^5.4|^7.0|^8.0
- ext-gd: *
Requires (Dev)
- codeception/codeception: ^4.1.22
- codeception/module-asserts: ^1.3
- codeception/module-filesystem: ^1.0
- phpunit/phpunit: ^5.7|^9.5
- squizlabs/php_codesniffer: ^3.4
- dev-main / 4.0.x-dev
- 3.1.x-dev
- 3.0.x-dev
- v3.0.17
- v3.0.16
- v3.0.15
- v3.0.14
- v3.0.13
- v3.0.12
- v3.0.11
- v3.0.10
- v3.0.9
- v3.0.8
- v3.0.7
- v3.0.6
- v3.0.5
- v3.0.4
- v3.0.3
- v3.0.2
- v3.0.1
- v3.0.0
- 2.0.x-dev
- v2.0.12
- v2.0.11
- v2.0.10
- v2.0.9
- 2.0.8
- 2.0.7
- 2.0.6
- 2.0.5
- 2.0.4
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0.0
- 1.1.6
- 1.1.5
- 1.1.3
- 1.1.2
- 1.1.1
- dev-analysis
- dev-legacy
This package is auto-updated.
Last update: 2024-09-19 10:53:22 UTC
README
支持
本项目仅提供基本支持,不会引入新功能。如果有需要,问题和建议将被审查和解决,因此请随时提交。
构建状态
关于
此库是将 Jean-Damien Pogolotti 创建的出色 pChart 统计库移植到 PHP,旨在使其在现代应用中使用。这是通过将 PSR 标准应用于代码、引入命名空间和类型提示以及一些基本的方法注释来实现的。
这是 3.x
版本,它删除了工厂服务并稍微重新组织了文件结构。它不引入任何新功能,但更改与 2.x
分支不兼容。与原始库的 BC 兼容性大部分保留,但是如果您不能承担这些风险,您仍然可以使用 1.x
版本。
所做的工作
-
支持从 PHP 5.4 到 8.1 的版本。
-
完全移植了库的功能。我对实际逻辑的修改很少,因此原始库的大部分代码应该可以工作。
-
定义并添加了所有类的命名空间。
-
将所有
exit()
/die()
命令替换为throw
语句。 -
重构了代码以满足 PSR-2 标准,并添加了注释(尽可能弄清楚它们)。此外,在可能的情况下,还添加了方法中的类型提示,因此如果进行了某些奇怪的操作,可能会发生一些向后兼容性问题。
-
将所有常量移动到一个 单个文件。它将通过 Composer 自动加载,因此无需手动操作。
许可协议
之前提到,此软件包使用 MIT 许可证,但这不符合原始作者设定的要求。现在它处于 GNU GPL v3 许可证下,因此如果您希望将其用于商业项目,则需要支付 相应的费用。
贡献
总的来说,这是一个从 PHP 4 移植的遗留库,因此代码既不美观也不容易理解。我尽力使其现代化并覆盖了一些基本测试,但还有更多可以做的事情。如果您愿意并且有时间修复或改进任何内容,请随时提交 PR 或问题。
安装(通过 Composer)
对于 composer 安装,将以下内容添加到您的 composer.json 文件中并更新您的依赖项。或者您可以在项目的根目录中运行:
"require": { "szymach/c-pchart": "^3.0" },
$ composer require szymach/c-pchart
用法
了解如何使用库的最佳来源仍然是 官方维基。然而,我已经将每个图表至少一个示例移植到 Markdown 文件中,因此您可以比较每个版本并找出如何使用当前实现。
通过 Image 类创建的图表
大部分的基本图表是通过 CpChart\Image
类的方法创建的。以下是可以找到这些图表的完整列表以及示例代码。
独立图表
更高级的图表有自己的独立类,您需要使用此类来创建它们。和以前一样,以下是可以找到的完整列表,以及示例代码。
条形码
pChart 库还提供了一种渲染 39 和 128 条形码的方式。以下是可以找到有关创建它们的文档链接
缓存
如果您发现自己多次从一组数据中创建图表,您可以考虑使用库的缓存组件。请转到文档的专门部分,了解如何进行。
字体和调色板
如果您想使用任何字体或调色板文件,只需提供实际文件的名称,不要在函数提供的字符串中添加 fonts
或 palettes
文件夹。如果您想从默认以外的目录加载它们,您需要添加文件的完整路径(例如 __DIR__.'/folder/to/my/palletes'
)。