Repository navigation
Releases: kevind3v/brlayer
Releases · kevind3v/brlayer
Release list
BrLayer CC v1.1.0
Novidade: Query para consultas com JOIN
Nova classe para relatórios, consultas com mais de uma tabela e filtros dinâmicos. O resultado vem em arrays associativos.
use BrLayer\Query;
$query = Query::create()
->select("u.id, u.first_name, c.name AS company")
->from("users u")
->leftJoin("companies c", "c.id", "u.company_id")
->where("u.status = ?", "ativo")
->andWhereIn("u.company_id", $empresas)
->order("u.first_name")
->limit(20);
$total = $query->count(); // ignora order, limit e offset (para paginação)
$users = $query->fetchArray();- Joins:
innerJoin(),leftJoin()ejoin()para ON com mais de uma condição. - Condições:
where(),andWhere(),orWhere(), com valores por?(um por?ou um só para todos) ou por:nome. Quantidade de valores errada lança exceção. andWhereIn()com lista vazia não encontra nada; comNOT IN, não exclui nada.count()porCOUNT(*), inclusive com GROUP BY e DISTINCT.- Agrupamento e ordem:
group()/order()validados,groupRaw()/orderRaw()para funções. - Outros recursos:
limit(null)/offset(null),query()para SQL próprio,fail()/throwOnFail(),getStatement()/getParams().
select(), from(), os joins e o texto do where() vão para o SQL como foram escritos: nunca coloque dados do usuário neles.
Documentação completa no README.
Sem mudanças incompatíveis em relação à 1.0.0.
BrLayer CC v1.0.0
Primeira versão da BrLayer: camada de persistência para PHP 8.2+ com PDO e prepared statements, no padrão Active Record.
A BrLayer é a continuação da CoffeeCode DataLayer (Robson V. Leite), atualizada para o PHP 8.x, com correções de bugs, reforço de segurança e recursos novos.
Instalação
composer require brbunny/brlayer
Exemplo
use BrLayer\Model;
class User extends Model
{
protected ?string $createdAt = "created_at";
protected ?string $updatedAt = "updated_at";
public function __construct()
{
parent::__construct("users", ["first_name"]);
}
}
$users = (new User())->find("status = :status", ["status" => "ativo"])->order("first_name")->fetch(true);
$user = (new User())->fill($_POST, ["first_name", "last_name", "email"]);
$user->save();