Download the PHP package sshilko/php-sql-mydb without Composer
On this page you can find all versions of the php package sshilko/php-sql-mydb. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Please rate this library. Is it a good library?
Informations about the package php-sql-mydb
MyDb - Component
Simple PHP client for MySQL database
Installation
Compatibility
- PHP 8.0, 8.1, 8.2
- MySQL >=5.7.8, 8.0
- MariaDB not compatible (TODO)
How this client helps you talk SQL to MySQL server
- Make MySQL behave like a “traditional” SQL database system
TRADITIONAL
mode, a simple description of this mode is “give an error instead of a warning”
- Friendly transactions
autocommit = 0
- explicit
commit
on gracefull shutdown
- Explicit timeouts
- 05 seconds
client-side
connect-timeout - 89 seconds
server-side
SELECT query timeout - 90 seconds
client-side
read-timeout for any query - 7200 seconds non-interactive connection
idle timeout
mysqlnd.net_read_timeout
- respect client disconnect in php-fpm
function.ignore-user-abort.php
- 05 seconds
- Performance boost
- increased
MYSQLI_OPT_NET_READ_BUFFER_SIZE
- increased
MYSQLI_OPT_NET_CMD_BUFFER_SIZE
- read-only InnoDB optimizations
- READ COMMITED session transaction isolation level for readonly connections
- async command execution
- move mysql resultset to PHP userspace memory
MYSQLI_STORE_RESULT_COPY_DATA
- use of
fetch_all
from PHP Mysql native driver
- increased
- UTF-8
utf8mb4
character setUTC
timezone
- Quality error handling
- PHP default error-reporting
E_ALL & ~E_WARNING & ~E_NOTICE
- MySQL default error-reporting
MYSQLI_REPORT_ALL ^ MYSQLI_REPORT_STRICT ^ MYSQLI_REPORT_INDEX
SIGTERM, SIGINT, SIGHUP
signals trap- connection retry
- PHP default error-reporting
- PHPUnit & Static code analysis
- unit-tested, static analysed codebase
What is the best use-case for this library
- High performance, low-latency data-intensive applications
- No prepared statements requirement
- No 3rd party dependencies
- No run-time/compile-time steps
- Easy to start with and/or integrate into existing codebase
Out of scope
This library is not intending to become a framework, to keep focus and minimize codebase, it does not provide
- Input validation, API facade
- Object-relational mapping, ORM
- Active record pattern
- Repository pattern
- Import and export of data
please re-use existing solutions that best fit your requirements.
Why this library exists
- MySQL database is fast, reliable and scalable, php runtime is the same
- Value developers time and do not add complexity where possible
- Measure app's performance with real-world datasets and organic load
- Optimize for my use-case, focus on bottlenecks, remember that there is no
NoSQLsilver bullet - Do not optimize early - resources like CPU, memory are cheap
- Focus on building architecture, learn from others and improve over time
Future roadmap
- MariaDB compatibility layer (variables and init command syntax is different between mysql and mariadb)
- MydbFactory responsible for initializing defaults
Contributing
- Please read contributing document
Authors
Sergei Shilko [email protected]
All versions of php-sql-mydb with dependencies
PHP Build Version
Package Version
Requires
php Version
^8.0 || ^8.1 || ^8.2
ext-mysqli Version *
ext-mysqlnd Version *
ext-pcntl Version *
psr/log Version ^1
composer-plugin-api Version ^2
ext-mysqli Version *
ext-mysqlnd Version *
ext-pcntl Version *
psr/log Version ^1
composer-plugin-api Version ^2
The package sshilko/php-sql-mydb contains the following files
Loading the files please wait ....