ulmus/src/Repository/MysqlRepository.php
2025-05-21 18:46:34 +00:00

36 lines
1.1 KiB
PHP

<?php
namespace Ulmus\Repository;
use Ulmus\{EntityCollection, Repository, Query, Entity, Ulmus};
class MysqlRepository extends Repository {
use JsonConditionTrait;
public function pragma(/*object|Stringable*/ $pragma, $argument = null, bool $callable = false) : self
{
$this->queryBuilder->pragma($pragma, $argument, $callable);
return $this;
}
public function listColumns(? string $table = null) : EntityCollection
{
$table ??= $this->entityResolver->tableName();
$this->showColumnsSqlQuery($table);
return $this->collectionFromQuery(Entity\Mysql\Column::class)->iterate(fn($e) => $e->tableName = $table);
}
public function createSqlQuery() : self
{
if ( null === $this->queryBuilder->getFragment(Query\Engine::class) ) {
if ( $engine = $this->entityResolver->tableAnnotation()->engine ?? $this->entityResolver->databaseAdapter()->adapter()->defaultEngine() ) {
$this->queryBuilder->engine($engine);
}
}
return parent::createSqlQuery();
}
}