Desenvolvimento

28 mai, 2018

Atlas.Query: Simples. Sensível. SQL

Publicidade

Tenho o prazer de anunciar que o Atlas.Query está agora estável e pronto para uso em produção! A instalação é tão fácil quanto composer require atlas/query ~1.0.

Com o Atlas.Query e qualquer instância do PDO, você pode criar e executar suas consultas em uma única série fluente de chamadas de método:

use Atlas\Query\Select;

$rows = Select::new($pdo)
    ->columns('*')
    ->from('posts')
    ->where('id IN ', $ids)
    ->fetchAll();

foreach ($rows as $row) {
    // ...
}

Se preferir, você pode exercer um bom controle sobre sua conexão PDO, usar uma fábrica de consultas ou construir suas consultas em etapas menores:

use Atlas\Pdo\Connection;
use Atlas\Query\QueryFactory;

$connection = Connection::new(
    'mysql:host=localhost;dbname=testdb',
    'username',
    'password'
);

$queryFactory = new QueryFactory();

$select = $queryFactory->newSelect($connection);
$select->columns('*');
$select->from('posts');
$select->where('id = ', $id);

$row = $select->fetchOne();

O Atlas.Query fornece todo o poder do SQL na ponta dos seus dedos.

$select
    ->columns(...)
    ->from(...)
    ->join(...)
    ->where(...)
    ->groupBy(...)
    ->having(...)
    ->orderBy(...)
    ->limit(...)
    ->offset(...);

Junto com UNIONs, paginação, sub-selects, vinculação de valores inline e todos os tipos de estilos de busca e produção.

O Atlas.Query também é fornecido com os construtores INSERT, UPDATE e DELETE:

use Atlas\Query\Insert;

$insert = Insert::new($pdo);

// insert a row ...
$insert->into('posts')
    ->columns([
        'title' => $title,
        'body' => $body,
    ])
    ->raw('created_at', 'NOW()')
    ->perform();

// ... and get back the autoincrement value:
$post_id = $insert->getLastInsertId();

Você trabalha em projetos diferentes com diferentes backends de datbase? O Atlas.Query permite que você use a mesma interface para todos eles, sem restringi-lo a um subconjunto comum de funcionalidade. MySQL, PostgreSQL, SQLite e SQL Server são todos suportados explicitamente.

E se você descobrir que precisa de mais do que apenas um sistema de consulta, terá um caminho claro de refatoração para o Atlas.Orm. Se você estiver procurando por um sistema de consulta moderno, estável e fácil de usar, experimente o Atlas.Query no seu projeto!

***

Paul M. Jones faz parte do time de colunistas internacionais do iMasters. A tradução do artigo é feita pela Redação iMasters, com autorização do autor, e você pode acompanhar o artigo em inglês no link: http://paul-m-jones.com/archives/6900