https://github.com/php-toolkit/pool
A simple resource pool library of the php
https://github.com/php-toolkit/pool
pool resource-pool
Last synced: 12 months ago
JSON representation
A simple resource pool library of the php
- Host: GitHub
- URL: https://github.com/php-toolkit/pool
- Owner: php-toolkit
- License: mit
- Created: 2018-07-31T02:40:34.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2018-12-12T15:24:25.000Z (about 7 years ago)
- Last Synced: 2025-01-02T18:41:33.077Z (about 1 year ago)
- Topics: pool, resource-pool
- Language: PHP
- Size: 72.3 KB
- Stars: 3
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 资源池
[](LICENSE)
[](https://packagist.org/packages/toolkit/pool)
[](https://packagist.org/packages/toolkit/pool)
> 资源池使用在 **常住进程的服务** 中才有用。比如用 swoole/workman 创建的应用
使用池可实现 数据库连接池、redis连接池等,减少对服务的过多的连接/断开带来的额外资源消耗。
- 基于swoole的实现
本仓库主要是做一些关于连接池的基础接口方法的抽象定义,并没有完整具体的实现。
> 具体的实现请查看: https://github.com/swokit/connection-pool.git
## 项目地址
- **github** https://github.com/php-toolkit/pool.git
## 安装
- 使用 `composer require toolkit/pool`
- 使用 `composer.json`
```
"toolkit/pool": "dev-master"
```
然后执行: `composer update`
- 直接拉取
```
git clone https://git.oschina.net/inhere/php-resource-pool.git // git@osc
git clone https://github.com/inhere/php-resource-pool.git // github
```
## 使用
```php
use Toolkit\Pool\Raw\ResourcePool;
$rpl = new ResourcePool([
'initSize' => 2,
'maxSize' => 2,
'driverOptions' => [
],
]);
$rpl->setCreator(function () {
$obj = new \stdClass();
$obj->name = 'test';
return $obj;
})
->setDestroyer(function ($obj) {
echo "call resource destroyer.\n";
});
var_dump($rpl);
$obj1 = $rpl->get();
$obj2 = $rpl->get();
$obj3 = $rpl->get();
var_dump($obj1, $obj2, $obj3,$rpl);
$rpl->put($obj1);
$rpl->put($obj2);
var_dump($rpl);
$rpl->call(function ($obj) {
echo " $obj->name\n";
});
var_dump($rpl);
```
## License
[MIT](LICENSE)