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.
- 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
- 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
Install the package with Composer:
composer require keenlysoft/databaseApplications created with keenlysoft/app include this package automatically.
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;
}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.
Run the local smoke test:
composer testThe smoke test does not require a live database server. It verifies SQL generation and model array access behavior.
- 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
Contributions are welcome. Please read CONTRIBUTING.md, follow the Code of Conduct, and report security issues according to SECURITY.md.
Keenly Database is released under the MIT License.