keenlysoft / database
Database and active record package for the Keenly lightweight PHP framework
Requires
- php: >=7.4 <9.0
README
keenlysoft/database is the database and active record package for the Keenly lightweight PHP framework. It provides a small MySQL-oriented query layer, active record helpers, pagination, and an optional Redis wrapper.
Features
- Active record models for common create, read, update, and delete operations
- Prepared query helpers through
pwhere() - Transaction helpers
- Pagination support
- Optional Redis connection wrapper
- PHP 7.4 and PHP 8.x compatibility baseline
Requirements
- PHP 7.4 or later
- PDO and the PDO driver for your database
- The BCMath extension when using pagination
- The Redis extension when using the Redis wrapper
keenlysoft/keenlywhen using framework configuration integration
Installation
Install the package with Composer:
composer require keenlysoft/database
Applications created with keenlysoft/app include this package automatically.
Quick Start
Define an application model:
<?php namespace models; class User extends \database\models { public $table = 'users'; }
Find records:
$user = User::find('*')->where(['id' => 1])->one(); $users = User::find(['id', 'name'])->pwhere(['status' => 'active'])->all();
Create, update, and delete records:
$user = new User(); $user->name = 'Ada'; $user->save(); $user->Update(['name' => 'Grace'], ['id' => 1]); $user->Delete(['id' => 1]);
Use transactions:
$user = new User(); $user->begin(); try { // Perform database operations. $user->commit(); } catch (\Throwable $exception) { $user->back(); throw $exception; }
Security Notes
Prefer prepared operations such as pwhere() when values originate from users or external systems. Methods that accept raw SQL fragments are intended for trusted application code only.
Store production database and Redis credentials outside version control. Review generated configuration before deployment.
Testing
Run the local smoke test:
composer test
The smoke test does not require a live database server. It verifies SQL generation and model array access behavior.
Roadmap
- Expand prepared-query coverage across the full active record API
- Add integration tests against a disposable MySQL service
- Review Redis extension compatibility and failure handling
- Add static analysis and coding-style checks
Contributing
Contributions are welcome. Please read CONTRIBUTING.md, follow the Code of Conduct, and report security issues according to SECURITY.md.
License
Keenly Database is released under the MIT License.