bardiz12 / laravel-connection-pool
Laravel Connection Pool
Installs: 1
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 1
Forks: 1
Open Issues: 0
pkg:composer/bardiz12/laravel-connection-pool
Requires
- php: ^8.1
- illuminate/database: ^9.0
- openswoole/core: ^22.1
This package is auto-updated.
Last update: 2025-10-06 12:41:55 UTC
README
This Package is using openswoole to achieve connection pooling in Laravel.
Note
This package still under development, currently no stable version is released. only dev-master
Supported Database :
- MySql
Instalation :
composer require "bardiz12/laravel-connection:dev-main"- setup database config
- change database's driver to
mysql-pool - you can set
pool_countconfig to define default connection that will be made - you can set
fillconfig to define if the connection should auto fill the connection pool.
- change database's driver to
- example :
///config/database.php <?php ... 'mysql' => [ 'driver' => 'mysql-pool', 'url' => env('DATABASE_URL'), 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', '3306'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'unix_socket' => env('DB_SOCKET', ''), 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_general_ci', 'prefix' => '', 'prefix_indexes' => true, 'strict' => true, 'engine' => null, 'options' => extension_loaded('pdo_mysql') ? array_filter([ PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), ]) : [], // 'fill' => true, // 'pool_count' => 11 ], ...
What this package do :
- Override laravel's DatabaseManager class with custom DatabaseManager Class.
- Override laravel's ConnectionFactory class
- Retrive a connection from pool when Laravel call
DatabaseManager::connection(string $name)if the database config is set tomysql-pool
Known Bug :
- Cannot handle transaction using laravel way
TODO :
- Create custom transaction method for pooling
- Handle Schema Function (mainly for migration)
- Write test case