stilliard/generic-loading-bar

通用的加载条PHP组件

1.0.0 2023-12-20 11:23 UTC

This package is auto-updated.

Last update: 2024-09-21 16:36:30 UTC


README

这是一个通用的PHP加载器/进度条实用程序包,可以帮助需要显示加载条的长运行应用程序。

使用composer安装

composer require stilliard/generic-loading-bar

基本用法

use GLB\LoadingBar;
$loading = new LoadingBar;
$loading->step(); // each call is 1/100 (or whatever steps is set to)
$loading->set(40); // set a specific loaded %
$loading->complete(); // sets to 100 to mark as complete
$loading->reset(); // sets to 0 to start over

或者带有选项

$loading = new LoadingBar([
    'codename' => 'my_loading_bar',
    'min' => 0,
    'max' => 100,
    'steps' => 150, // default: 100
    'dataHandler' => DBDataHandler::class, // default ProcessDataHandler
    'displayHandler' => HTMLDisplayHandler::class, // default EchoDisplayHandler
]);
$loading->step(); // each call is then 1/150 (or whatever steps is set to)

显示加载条

echo $loading->display(); // displays the html loading bar with auto refresh

或者

echo $loading; // same as above

范围加载计算

范围计算是这个包的原始原因。想将加载分成4部分,每部分25%,然后处理数千条记录?这可以帮您处理。

$totalProducts = count($products);
foreach ($products as $i => $product) {
    // fill in the range between 25% to 50% as the % of the total products handled so far. [index, total]
    $loading->calc([25, 50], [$i + 1, $totalProducts]);
}

演示

demo文件夹中查看基本CLI演示(在cli.php中),或者使用html文件夹中的Redis数据处理器进行完整的Web和后台进程演示,其中包含有关更多信息的相关README.md文件。

数据处理程序

  • 处理 ProcessDataHandler 仅在进程中运行且不保存任何地方
  • Redis RedisDataHandler 使用redis存储当前的加载百分比
  • PDO PDODataHandler 使用PDO实例的数据库,允许您通过构造函数选项传递数据库PDO实例/对象,然后查询假设的loading_bars表,其中包含namevalue列。
  • DB DBDataHandler 与上面的PDO类似,但不是传递pdo实例,而是假设您有一个DB全局类

通过扩展抽象的BaseDataHandler类构建自己的,请参阅src/DataHandler文件夹中的示例了解上述内容。

显示处理程序

  • Echo EchoDisplayHandler 简单地在调用->display()的点上输出当前的百分比
  • Console ConsoleDisplayHandler 是CLI/Console ascii加载/进度条,例如[===> ] 50%
  • HTML HTMLDisplayHandler 在显示点显示一个<progress>元素,然后可以通过ajax自动刷新它

通过扩展抽象的BaseDisplayHandler类构建自己的,请参阅src/DisplayHandler文件夹中的示例了解上述内容。

许可协议

此项目是开源软件,根据MIT许可协议许可。