- A lot of bugfixes and fitting to accomodate ldap adapter

This commit is contained in:
Dave Mc Nicoll committed 2022-04-13 03:31:48 +00:00
1 parent f14347f01d
commit 16d76470da
15 files changed
+350 -216

No files matched your search

+51
View File
@@ -0,0 +1,51 @@
<?php
namespace Ulmus\Repository;
use Ulmus\{ Query, Adapter };
use Ulmus\Annotation\Property\Field;
trait EscapeTrait
{
public function escapeField(string $identifier) : string
{
return $this->adapter->adapter()->escapeIdentifier($identifier, Adapter\AdapterInterface::IDENTIFIER_FIELD);
}
public function escapeFieldList(array $fieldList) : array
{
foreach($fieldList as &$list) {
$list['name'] = $this->escapeField($list['name']);
$fieldTag = array_filter($list['tags'] ?? [], fn($item) => $item['object'] instanceof Field)[0]['object'] ?? null;
if ( $fieldTag && isset($fieldTag->name) ) {
$fieldTag->name = $this->escapeField($fieldTag->name);
}
}
return $fieldList;
}
public function escapeTable(string $identifier) : string
{
return $this->adapter->adapter()->escapeIdentifier($identifier, Adapter\AdapterInterface::IDENTIFIER_TABLE);
}
public function escapeDatabase(string $identifier) : string
{
return $this->adapter->adapter()->escapeIdentifier($identifier, Adapter\AdapterInterface::IDENTIFIER_DATABASE);
}
public function escapedDatabase() : ? string
{
$name = $this->entityResolver->tableAnnotation()->database ?? $this->adapter->adapter()->database ?? null;
return $name ? static::escapeDatabase($name) : null;
}
public function escapeSchema(string $identifier) : string
{
return $this->adapter->adapter()->escapeIdentifier($identifier, Adapter\AdapterInterface::IDENTIFIER_SCHEMA);
}
}
+6 -2
View File
@@ -2,7 +2,7 @@
namespace Ulmus\Repository;
use Ulmus\{ Repository, Query };
use Ulmus\{Repository, Query, Ulmus, Common};
class MssqlRepository extends Repository {
@@ -16,7 +16,7 @@ class MssqlRepository extends Repository {
# an order by is mandatory for mssql offset/limit
if ( null === $order = $this->queryBuilder->getFragment(Query\OrderBy::class) ) {
$this->orderBy("(SELECT 0)");
}
}
$mssqlOffset = new \Ulmus\Query\MsSQL\Offset();
@@ -40,4 +40,8 @@ class MssqlRepository extends Repository {
}
}
protected function serverRequestCountRepository() : Repository
{
return new static($this->entityClass, $this->alias, $this->adapter);
}
}