A simple query builder package, with separate Model and Relation classes.
A model reads one table, described by its entity:
final class UserEntity extends Entity
{
public string $table = 'custom_users';
}
final class User extends Model
{
public function __construct(UserEntity $entity, QueryBuilder $queryBuilder)
{
parent::__construct($entity, $queryBuilder);
}
}An entity which names no table is named after itself, so BookEntity reads books.
$user = $container->get(User::class);
$user->select('id, email')->getQuery();
// SELECT t1.id, t1.email FROM `custom_users` AS t1The connection is opened when the first query is run rather than when the builder is built, so building a query needs no database and neither does a request which never asks for one.
composer testCoverage needs phpdbg:
composer test:coverageMIT. See LICENSE.
