stilliard / generic-loading-bar
通用的加载条PHP组件
1.0.0
2023-12-20 11:23 UTC
Requires (Dev)
- phpunit/phpunit: ^9.6
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
表,其中包含name
和value
列。 - 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许可协议许可。