QCrud é uma biblioteca leve e poderosa para operações CRUD e construção de queries em PHP, inspirada em abordagens modernas como o Query Builder do Laravel, mas com foco em simplicidade, flexibilidade e controle total sobre o SQL.
Via Composer:
composer require eril/qcrudAntes de usar, registre uma conexão PDO
use Eril\QCrud\CRUD;
CRUD::registerConnection(function () {
return new PDO(
"mysql:host=localhost;dbname=test;charset=utf8",
"root",
"",
[
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
]
);
});Também é possível passar diretamente uma instância de PDO:
CRUD::registerConnection($pdo);$id = CRUD::table('users')->create([
'name' => 'Erilando',
'email' => 'email@example.com'
]);// Todos
$users = CRUD::table('users')->read();
// Por ID
$user = CRUD::table('users')->read(1);CRUD::table('users')->update(1, [
'name' => 'Novo nome'
]);CRUD::table('users')->delete(1);$users = CRUD::table('users')->select(
'age > ? AND status = ?',
[18, 'active']
);O QCrud inclui um construtor de queries fluente para consultas complexas.
$users = CRUD::query('users')
->where('age', '>', 18)
->orderBy('name')
->limit(10)
->get();CRUD::query('users')
->where('status', 'active')
->orWhere('role', ['admin', 'editor'])
->get();CRUD::query('users')
->whereBetween('age', 18, 30)
->get();CRUD::query('users u')
->join(['posts', 'p'], 'p.user_id = u.id')
->get();CRUD::query('orders')
->select('user_id, COUNT(*) as total')
->groupBy('user_id')
->having('total', '>', 5)
->get();CRUD::query('users')
->whereSub('id', 'IN', function($q) {
$q->select('user_id')
->where('status', 'active');
}, 'orders')
->get();$result = CRUD::query('users')
->paginate(10, 1);
$data = $result['data'];
$meta = $result['pagination'];$user = CRUD::query('users')->first();$total = CRUD::query('users')->count();$total = CRUD::query('orders')->sum('price');$avg = CRUD::query('orders')->avg('price');$exists = CRUD::query('users')
->where('email', 'test@example.com')
->exists();CRUD::beginTransaction();
CRUD::table('users')->create([...]);
CRUD::table('profiles')->create([...]);
CRUD::commit();Em caso de erro, a transação é revertida automaticamente.
$sql = CRUD::query('users')->where('id', 1)->toSql();$params = CRUD::query('users')->where('id', 1)->getBindings();- PHP >= 8.0
- PDO habilitado
MIT License
Eril TS Carvalho