composer update + SQL Compare refactored
This commit is contained in:
parent
b1c4c9e976
commit
3b2b5984d6
@ -15,10 +15,10 @@ namespace Core\API {
|
|||||||
$sql = $this->context->getSQL();
|
$sql = $this->context->getSQL();
|
||||||
$res = $sql->select($sql->count())
|
$res = $sql->select($sql->count())
|
||||||
->from("ApiKey")
|
->from("ApiKey")
|
||||||
->where(new Compare("id", $id))
|
->whereEq("id", $id)
|
||||||
->where(new Compare("user_id", $this->context->getUser()->getId()))
|
->whereEq("user_id", $this->context->getUser()->getId())
|
||||||
->where(new Compare("valid_until", $sql->currentTimestamp(), ">"))
|
->whereGt("valid_until", $sql->currentTimestamp())
|
||||||
->where(new Compare("active", 1))
|
->whereEq("active", 1)
|
||||||
->execute();
|
->execute();
|
||||||
|
|
||||||
$this->success = ($res !== FALSE);
|
$this->success = ($res !== FALSE);
|
||||||
@ -120,12 +120,12 @@ namespace Core\API\ApiKey {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$validUntil = (new \DateTime)->modify("+30 DAY");
|
$validUntil = (new \DateTime())->modify("+30 DAY");
|
||||||
$sql = $this->context->getSQL();
|
$sql = $this->context->getSQL();
|
||||||
$this->success = $sql->update("ApiKey")
|
$this->success = $sql->update("ApiKey")
|
||||||
->set("valid_until", $validUntil)
|
->set("valid_until", $validUntil)
|
||||||
->where(new Compare("id", $id))
|
->whereEq("id", $id)
|
||||||
->where(new Compare("user_id", $this->context->getUser()->getId()))
|
->whereEq("user_id", $this->context->getUser()->getId())
|
||||||
->execute();
|
->execute();
|
||||||
$this->lastError = $sql->getLastError();
|
$this->lastError = $sql->getLastError();
|
||||||
|
|
||||||
@ -155,8 +155,8 @@ namespace Core\API\ApiKey {
|
|||||||
$sql = $this->context->getSQL();
|
$sql = $this->context->getSQL();
|
||||||
$this->success = $sql->update("ApiKey")
|
$this->success = $sql->update("ApiKey")
|
||||||
->set("active", false)
|
->set("active", false)
|
||||||
->where(new Compare("id", $id))
|
->whereEq("id", $id)
|
||||||
->where(new Compare("user_id", $this->context->getUser()->getId()))
|
->whereEq("user_id", $this->context->getUser()->getId())
|
||||||
->execute();
|
->execute();
|
||||||
$this->lastError = $sql->getLastError();
|
$this->lastError = $sql->getLastError();
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ namespace Core\API {
|
|||||||
$sql = $this->context->getSQL();
|
$sql = $this->context->getSQL();
|
||||||
$res = $sql->select($sql->count())
|
$res = $sql->select($sql->count())
|
||||||
->from("Group")
|
->from("Group")
|
||||||
->where(new Compare("name", $name))
|
->whereEq("name", $name)
|
||||||
->execute();
|
->execute();
|
||||||
|
|
||||||
$this->success = ($res !== FALSE);
|
$this->success = ($res !== FALSE);
|
||||||
|
@ -94,7 +94,7 @@ namespace Core\API\Language {
|
|||||||
|
|
||||||
$this->success = $sql->update("User")
|
$this->success = $sql->update("User")
|
||||||
->set("language_id", $languageId)
|
->set("language_id", $languageId)
|
||||||
->where(new Compare("id", $userId))
|
->whereEq("id", $userId)
|
||||||
->execute();
|
->execute();
|
||||||
|
|
||||||
$this->lastError = $sql->getLastError();
|
$this->lastError = $sql->getLastError();
|
||||||
|
@ -223,8 +223,8 @@ namespace Core\API\Mail {
|
|||||||
|
|
||||||
$sql = $this->context->getSQL();
|
$sql = $this->context->getSQL();
|
||||||
$mailQueueItems = MailQueueItem::findBy(MailQueueItem::createBuilder($sql, false)
|
$mailQueueItems = MailQueueItem::findBy(MailQueueItem::createBuilder($sql, false)
|
||||||
->where(new Compare("retryCount", 0, ">"))
|
->whereGt("retryCount", 0)
|
||||||
->where(new Compare("status", "waiting"))
|
->whereEq("status", "waiting")
|
||||||
->where(new Compare("nextTry", $sql->now(), "<=")));
|
->where(new Compare("nextTry", $sql->now(), "<=")));
|
||||||
|
|
||||||
$this->success = ($mailQueueItems !== false);
|
$this->success = ($mailQueueItems !== false);
|
||||||
|
@ -183,7 +183,7 @@ namespace Core\API\Permission {
|
|||||||
|
|
||||||
if ($this->success) {
|
if ($this->success) {
|
||||||
$res = $sql->delete("ApiPermission")
|
$res = $sql->delete("ApiPermission")
|
||||||
->where(new Compare("description", "")) // only delete non default permissions
|
->whereEq("description", "") // only delete non default permissions
|
||||||
->where(new CondNot(new CondIn(new Column("method"), $insertedMethods)))
|
->where(new CondNot(new CondIn(new Column("method"), $insertedMethods)))
|
||||||
->execute();
|
->execute();
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ namespace Core\API {
|
|||||||
$sql = $this->context->getSQL();
|
$sql = $this->context->getSQL();
|
||||||
$res = $sql->select($sql->count())
|
$res = $sql->select($sql->count())
|
||||||
->from("Route")
|
->from("Route")
|
||||||
->where(new Compare("id", $uid))
|
->whereEq("id", $uid)
|
||||||
->execute();
|
->execute();
|
||||||
|
|
||||||
$this->success = ($res !== false);
|
$this->success = ($res !== false);
|
||||||
@ -44,7 +44,7 @@ namespace Core\API {
|
|||||||
$sql = $this->context->getSQL();
|
$sql = $this->context->getSQL();
|
||||||
$this->success = $sql->update("Route")
|
$this->success = $sql->update("Route")
|
||||||
->set("active", $active)
|
->set("active", $active)
|
||||||
->where(new Compare("id", $uid))
|
->whereEq("id", $uid)
|
||||||
->execute();
|
->execute();
|
||||||
|
|
||||||
$this->lastError = $sql->getLastError();
|
$this->lastError = $sql->getLastError();
|
||||||
@ -275,7 +275,7 @@ namespace Core\API\Routes {
|
|||||||
->set("action", $action)
|
->set("action", $action)
|
||||||
->set("target", $target)
|
->set("target", $target)
|
||||||
->set("extra", $extra)
|
->set("extra", $extra)
|
||||||
->where(new Compare("id", $id))
|
->whereEq("id", $id)
|
||||||
->execute();
|
->execute();
|
||||||
|
|
||||||
$this->lastError = $sql->getLastError();
|
$this->lastError = $sql->getLastError();
|
||||||
@ -294,14 +294,14 @@ namespace Core\API\Routes {
|
|||||||
|
|
||||||
public function _execute(): bool {
|
public function _execute(): bool {
|
||||||
|
|
||||||
$uid = $this->getParam("id");
|
$id = $this->getParam("id");
|
||||||
if (!$this->routeExists($uid)) {
|
if (!$this->routeExists($id)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$sql = $this->context->getSQL();
|
$sql = $this->context->getSQL();
|
||||||
$this->success = $sql->delete("Route")
|
$this->success = $sql->delete("Route")
|
||||||
->where(new Compare("id", $uid))
|
->where("id", $id)
|
||||||
->execute();
|
->execute();
|
||||||
|
|
||||||
$this->lastError = $sql->getLastError();
|
$this->lastError = $sql->getLastError();
|
||||||
|
@ -86,7 +86,7 @@ namespace Core\API\TFA {
|
|||||||
if ($password) {
|
if ($password) {
|
||||||
$res = $sql->select("password")
|
$res = $sql->select("password")
|
||||||
->from("User")
|
->from("User")
|
||||||
->where(new Compare("id", $currentUser->getId()))
|
->whereEq("id", $currentUser->getId())
|
||||||
->execute();
|
->execute();
|
||||||
$this->success = !empty($res);
|
$this->success = !empty($res);
|
||||||
$this->lastError = $sql->getLastError();
|
$this->lastError = $sql->getLastError();
|
||||||
@ -101,7 +101,7 @@ namespace Core\API\TFA {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$res = $sql->delete("2FA")
|
$res = $sql->delete("2FA")
|
||||||
->where(new Compare("id", $token->getId()))
|
->whereEq("id", $token->getId())
|
||||||
->execute();
|
->execute();
|
||||||
|
|
||||||
$this->success = $res !== false;
|
$this->success = $res !== false;
|
||||||
@ -164,7 +164,8 @@ namespace Core\API\TFA {
|
|||||||
$this->lastError = $sql->getLastError();
|
$this->lastError = $sql->getLastError();
|
||||||
if ($this->success) {
|
if ($this->success) {
|
||||||
$this->success = $sql->update("User")
|
$this->success = $sql->update("User")
|
||||||
->set("2fa_id", $sql->getLastInsertId())->where(new Compare("id", $currentUser->getId()))
|
->set("2fa_id", $sql->getLastInsertId())
|
||||||
|
->whereEq("id", $currentUser->getId())
|
||||||
->execute() !== false;
|
->execute() !== false;
|
||||||
$this->lastError = $sql->getLastError();
|
$this->lastError = $sql->getLastError();
|
||||||
}
|
}
|
||||||
@ -196,7 +197,7 @@ namespace Core\API\TFA {
|
|||||||
$sql = $this->context->getSQL();
|
$sql = $this->context->getSQL();
|
||||||
$this->success = $sql->update("2FA")
|
$this->success = $sql->update("2FA")
|
||||||
->set("confirmed", true)
|
->set("confirmed", true)
|
||||||
->where(new Compare("id", $twoFactorToken->getId()))
|
->whereEq("id", $twoFactorToken->getId())
|
||||||
->execute() !== false;
|
->execute() !== false;
|
||||||
$this->lastError = $sql->getLastError();
|
$this->lastError = $sql->getLastError();
|
||||||
return $this->success;
|
return $this->success;
|
||||||
@ -282,7 +283,7 @@ namespace Core\API\TFA {
|
|||||||
|
|
||||||
$this->success = $sql->update("User")
|
$this->success = $sql->update("User")
|
||||||
->set("2fa_id", $sql->getLastInsertId())
|
->set("2fa_id", $sql->getLastInsertId())
|
||||||
->where(new Compare("id", $currentUser->getId()))
|
->whereEq("id", $currentUser->getId())
|
||||||
->execute() !== false;
|
->execute() !== false;
|
||||||
$this->lastError = $sql->getLastError();
|
$this->lastError = $sql->getLastError();
|
||||||
if (!$this->success) {
|
if (!$this->success) {
|
||||||
@ -328,7 +329,7 @@ namespace Core\API\TFA {
|
|||||||
$this->success = $sql->update("2FA")
|
$this->success = $sql->update("2FA")
|
||||||
->set("data", json_encode($data))
|
->set("data", json_encode($data))
|
||||||
->set("confirmed", true)
|
->set("confirmed", true)
|
||||||
->where(new Compare("id", $twoFactorToken->getId()))
|
->whereEq("id", $twoFactorToken->getId())
|
||||||
->execute() !== false;
|
->execute() !== false;
|
||||||
$this->lastError = $sql->getLastError();
|
$this->lastError = $sql->getLastError();
|
||||||
}
|
}
|
||||||
|
@ -109,9 +109,9 @@ namespace Core\API {
|
|||||||
protected function checkToken(string $token) : UserToken|bool {
|
protected function checkToken(string $token) : UserToken|bool {
|
||||||
$sql = $this->context->getSQL();
|
$sql = $this->context->getSQL();
|
||||||
$userToken = UserToken::findBy(UserToken::createBuilder($sql, true)
|
$userToken = UserToken::findBy(UserToken::createBuilder($sql, true)
|
||||||
->where(new Compare("UserToken.token", $token))
|
->whereEq("UserToken.token", $token)
|
||||||
->where(new Compare("UserToken.valid_until", $sql->now(), ">"))
|
->whereGt("UserToken.valid_until", $sql->now())
|
||||||
->where(new Compare("UserToken.used", 0))
|
->whereFalse("UserToken.used")
|
||||||
->fetchEntities());
|
->fetchEntities());
|
||||||
|
|
||||||
if ($userToken === false) {
|
if ($userToken === false) {
|
||||||
@ -841,7 +841,7 @@ namespace Core\API\User {
|
|||||||
|
|
||||||
if ($user->save($sql)) {
|
if ($user->save($sql)) {
|
||||||
|
|
||||||
$deleteQuery = $sql->delete("UserGroup")->where(new Compare("user_id", $id));
|
$deleteQuery = $sql->delete("UserGroup")->whereEq("user_id", $id);
|
||||||
$insertQuery = $sql->insert("UserGroup", array("user_id", "group_id"));
|
$insertQuery = $sql->insert("UserGroup", array("user_id", "group_id"));
|
||||||
|
|
||||||
foreach ($groupIds as $groupId) {
|
foreach ($groupIds as $groupId) {
|
||||||
@ -928,7 +928,7 @@ namespace Core\API\User {
|
|||||||
$sql = $this->context->getSQL();
|
$sql = $this->context->getSQL();
|
||||||
$email = $this->getParam("email");
|
$email = $this->getParam("email");
|
||||||
$user = User::findBy(User::createBuilder($sql, true)
|
$user = User::findBy(User::createBuilder($sql, true)
|
||||||
->where(new Compare("email", $email))
|
->whereEq("email", $email)
|
||||||
->fetchEntities());
|
->fetchEntities());
|
||||||
if ($user === false) {
|
if ($user === false) {
|
||||||
return $this->createError("Could not fetch user details: " . $sql->getLastError());
|
return $this->createError("Could not fetch user details: " . $sql->getLastError());
|
||||||
@ -1009,8 +1009,8 @@ namespace Core\API\User {
|
|||||||
$email = $this->getParam("email");
|
$email = $this->getParam("email");
|
||||||
$sql = $this->context->getSQL();
|
$sql = $this->context->getSQL();
|
||||||
$user = User::findBy(User::createBuilder($sql, true)
|
$user = User::findBy(User::createBuilder($sql, true)
|
||||||
->where(new Compare("User.email", $email))
|
->whereEq("User.email", $email)
|
||||||
->where(new Compare("User.confirmed", false)));
|
->whereFalse("User.confirmed"));
|
||||||
|
|
||||||
if ($user === false) {
|
if ($user === false) {
|
||||||
return $this->createError("Error retrieving user details: " . $sql->getLastError());
|
return $this->createError("Error retrieving user details: " . $sql->getLastError());
|
||||||
@ -1020,9 +1020,9 @@ namespace Core\API\User {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$userToken = UserToken::findBy(UserToken::createBuilder($sql, true)
|
$userToken = UserToken::findBy(UserToken::createBuilder($sql, true)
|
||||||
->where(new Compare("used", false))
|
->whereFalse("used")
|
||||||
->where(new Compare("tokenType", UserToken::TYPE_EMAIL_CONFIRM))
|
->whereEq("tokenType", UserToken::TYPE_EMAIL_CONFIRM)
|
||||||
->where(new Compare("user_id", $user->getId())));
|
->whereEq("user_id", $user->getId()));
|
||||||
|
|
||||||
$validHours = 48;
|
$validHours = 48;
|
||||||
if ($userToken === false) {
|
if ($userToken === false) {
|
||||||
@ -1333,10 +1333,10 @@ namespace Core\API\User {
|
|||||||
$sql = $this->context->getSQL();
|
$sql = $this->context->getSQL();
|
||||||
|
|
||||||
$userToken = UserToken::findBy(UserToken::createBuilder($sql, true)
|
$userToken = UserToken::findBy(UserToken::createBuilder($sql, true)
|
||||||
->where(new Compare("token", $token))
|
->whereEq("token", $token)
|
||||||
->where(new Compare("valid_until", $sql->now(), ">="))
|
->where(new Compare("valid_until", $sql->now(), ">="))
|
||||||
->where(new Compare("user_id", $currentUser->getId()))
|
->whereEq("user_id", $currentUser->getId())
|
||||||
->where(new Compare("token_type", UserToken::TYPE_GPG_CONFIRM)));
|
->whereEq("token_type", UserToken::TYPE_GPG_CONFIRM));
|
||||||
|
|
||||||
if ($userToken !== false) {
|
if ($userToken !== false) {
|
||||||
if ($userToken === null) {
|
if ($userToken === null) {
|
||||||
|
@ -84,7 +84,7 @@ namespace Core\API\Visitors {
|
|||||||
$sql = $this->context->getSQL();
|
$sql = $this->context->getSQL();
|
||||||
$query = $sql->select($sql->count(), "day")
|
$query = $sql->select($sql->count(), "day")
|
||||||
->from("Visitor")
|
->from("Visitor")
|
||||||
->where(new Compare("count", 1, ">"))
|
->whereGt("count", 1)
|
||||||
->groupBy("day")
|
->groupBy("day")
|
||||||
->orderBy("day")
|
->orderBy("day")
|
||||||
->ascending();
|
->ascending();
|
||||||
|
@ -39,8 +39,8 @@ class EntityLog_2021_04_08 extends DatabaseScript {
|
|||||||
->exec(array(
|
->exec(array(
|
||||||
$sql->update("EntityLog")
|
$sql->update("EntityLog")
|
||||||
->set("modified", $sql->now())
|
->set("modified", $sql->now())
|
||||||
->where(new Compare("entityId", new CurrentColumn("id")))
|
->whereEq("entityId", new CurrentColumn("id"))
|
||||||
->where(new Compare("tableName", new CurrentTable()))
|
->whereEq("tableName", new CurrentTable())
|
||||||
));
|
));
|
||||||
|
|
||||||
$deleteProcedure = $sql->createProcedure("DeleteEntityLog")
|
$deleteProcedure = $sql->createProcedure("DeleteEntityLog")
|
||||||
@ -49,8 +49,8 @@ class EntityLog_2021_04_08 extends DatabaseScript {
|
|||||||
->returns(new Trigger())
|
->returns(new Trigger())
|
||||||
->exec(array(
|
->exec(array(
|
||||||
$sql->delete("EntityLog")
|
$sql->delete("EntityLog")
|
||||||
->where(new Compare("entityId", new CurrentColumn("id")))
|
->whereEq("entityId", new CurrentColumn("id"))
|
||||||
->where(new Compare("tableName", new CurrentTable()))
|
->whereEq("tableName", new CurrentTable())
|
||||||
));
|
));
|
||||||
|
|
||||||
$queries[] = $insertProcedure;
|
$queries[] = $insertProcedure;
|
||||||
|
9
Core/Driver/SQL/Join/InnerJoin.class.php
Normal file
9
Core/Driver/SQL/Join/InnerJoin.class.php
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Core\Driver\SQL\Join;
|
||||||
|
|
||||||
|
class InnerJoin extends Join {
|
||||||
|
public function __construct(string $table, string $columnA, string $columnB, ?string $tableAlias = null, array $conditions = []) {
|
||||||
|
parent::__construct("INNER", $table, $columnA, $columnB, $tableAlias, $conditions);
|
||||||
|
}
|
||||||
|
}
|
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Core\Driver\SQL;
|
namespace Core\Driver\SQL\Join;
|
||||||
|
|
||||||
use Core\Driver\SQL\Column\Column;
|
use Core\Driver\SQL\Column\Column;
|
||||||
use Core\Driver\SQL\Condition\Compare;
|
use Core\Driver\SQL\Condition\Compare;
|
9
Core/Driver/SQL/Join/LeftJoin.class.php
Normal file
9
Core/Driver/SQL/Join/LeftJoin.class.php
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Core\Driver\SQL\Join;
|
||||||
|
|
||||||
|
class LeftJoin extends Join {
|
||||||
|
public function __construct(string $table, string $columnA, string $columnB, ?string $tableAlias = null, array $conditions = []) {
|
||||||
|
parent::__construct("LEFT", $table, $columnA, $columnB, $tableAlias, $conditions);
|
||||||
|
}
|
||||||
|
}
|
63
Core/Driver/SQL/Query/ConditionalQuery.class.php
Normal file
63
Core/Driver/SQL/Query/ConditionalQuery.class.php
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Core\Driver\SQL\Query;
|
||||||
|
|
||||||
|
use Core\Driver\SQL\Condition\Compare;
|
||||||
|
use Core\Driver\SQL\Condition\CondBool;
|
||||||
|
use Core\Driver\SQL\Condition\CondNot;
|
||||||
|
use Core\Driver\SQL\Condition\CondOr;
|
||||||
|
use Core\Driver\SQL\SQL;
|
||||||
|
|
||||||
|
abstract class ConditionalQuery extends Query {
|
||||||
|
|
||||||
|
private array $conditions;
|
||||||
|
|
||||||
|
public function __construct(SQL $sql) {
|
||||||
|
parent::__construct($sql);
|
||||||
|
$this->conditions = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getWhereClause(array &$params): string {
|
||||||
|
return $this->sql->getWhereClause($this->getConditions(), $params);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getConditions(): array {
|
||||||
|
return $this->conditions;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function where(...$conditions): static {
|
||||||
|
$this->conditions[] = (count($conditions) === 1 ? $conditions : new CondOr($conditions));
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function whereEq(string $col, mixed $val): static {
|
||||||
|
$this->conditions[] = new Compare($col, $val, "=");
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function whereNeq(string $col, mixed $val): static {
|
||||||
|
$this->conditions[] = new Compare($col, $val, "!=");
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function whereGt(string $col, mixed $val): static {
|
||||||
|
$this->conditions[] = new Compare($col, $val, ">");
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function whereLt(string $col, mixed $val): static {
|
||||||
|
$this->conditions[] = new Compare($col, $val, "<");
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function whereTrue(string $col): static {
|
||||||
|
$this->conditions[] = new CondBool($col);
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function whereFalse(string $col): static {
|
||||||
|
$this->conditions[] = new CondNot(new CondBool($col));
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
}
|
@ -5,28 +5,20 @@ namespace Core\Driver\SQL\Query;
|
|||||||
use Core\Driver\SQL\Condition\CondOr;
|
use Core\Driver\SQL\Condition\CondOr;
|
||||||
use Core\Driver\SQL\SQL;
|
use Core\Driver\SQL\SQL;
|
||||||
|
|
||||||
class Delete extends Query {
|
class Delete extends ConditionalQuery {
|
||||||
|
|
||||||
private string $table;
|
private string $table;
|
||||||
private array $conditions;
|
|
||||||
|
|
||||||
public function __construct(SQL $sql, string $table) {
|
public function __construct(SQL $sql, string $table) {
|
||||||
parent::__construct($sql);
|
parent::__construct($sql);
|
||||||
$this->table = $table;
|
$this->table = $table;
|
||||||
$this->conditions = array();
|
|
||||||
}
|
|
||||||
|
|
||||||
public function where(...$conditions): Delete {
|
|
||||||
$this->conditions[] = (count($conditions) === 1 ? $conditions : new CondOr($conditions));
|
|
||||||
return $this;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getTable(): string { return $this->table; }
|
public function getTable(): string { return $this->table; }
|
||||||
public function getConditions(): array { return $this->conditions; }
|
|
||||||
|
|
||||||
public function build(array &$params): ?string {
|
public function build(array &$params): ?string {
|
||||||
$table = $this->sql->tableName($this->getTable());
|
$table = $this->sql->tableName($this->getTable());
|
||||||
$where = $this->sql->getWhereClause($this->getConditions(), $params);
|
$where = $this->getWhereClause($params);
|
||||||
return "DELETE FROM $table$where";
|
return "DELETE FROM $table$where";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,14 +4,15 @@ namespace Core\Driver\SQL\Query;
|
|||||||
|
|
||||||
use Core\Driver\SQL\Condition\CondOr;
|
use Core\Driver\SQL\Condition\CondOr;
|
||||||
use Core\Driver\SQL\Expression\JsonArrayAgg;
|
use Core\Driver\SQL\Expression\JsonArrayAgg;
|
||||||
use Core\Driver\SQL\Join;
|
use Core\Driver\SQL\Join\InnerJoin;
|
||||||
|
use Core\Driver\SQL\Join\Join;
|
||||||
|
use Core\Driver\SQL\Join\LeftJoin;
|
||||||
use Core\Driver\SQL\SQL;
|
use Core\Driver\SQL\SQL;
|
||||||
|
|
||||||
class Select extends Query {
|
class Select extends ConditionalQuery {
|
||||||
|
|
||||||
private array $selectValues;
|
private array $selectValues;
|
||||||
private array $tables;
|
private array $tables;
|
||||||
private array $conditions;
|
|
||||||
private array $joins;
|
private array $joins;
|
||||||
private array $orderColumns;
|
private array $orderColumns;
|
||||||
private array $groupColumns;
|
private array $groupColumns;
|
||||||
@ -26,7 +27,6 @@ class Select extends Query {
|
|||||||
parent::__construct($sql);
|
parent::__construct($sql);
|
||||||
$this->selectValues = (!empty($selectValues) && is_array($selectValues[0])) ? $selectValues[0] : $selectValues;
|
$this->selectValues = (!empty($selectValues) && is_array($selectValues[0])) ? $selectValues[0] : $selectValues;
|
||||||
$this->tables = array();
|
$this->tables = array();
|
||||||
$this->conditions = array();
|
|
||||||
$this->havings = array();
|
$this->havings = array();
|
||||||
$this->joins = array();
|
$this->joins = array();
|
||||||
$this->orderColumns = array();
|
$this->orderColumns = array();
|
||||||
@ -53,23 +53,18 @@ class Select extends Query {
|
|||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function where(...$conditions): Select {
|
|
||||||
$this->conditions[] = (count($conditions) === 1 ? $conditions : new CondOr($conditions));
|
|
||||||
return $this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function having(...$conditions): Select {
|
public function having(...$conditions): Select {
|
||||||
$this->havings[] = (count($conditions) === 1 ? $conditions : new CondOr($conditions));
|
$this->havings[] = (count($conditions) === 1 ? $conditions : new CondOr($conditions));
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function innerJoin(string $table, string $columnA, string $columnB, ?string $tableAlias = null, array $conditions = []): Select {
|
public function innerJoin(string $table, string $columnA, string $columnB, ?string $tableAlias = null, array $conditions = []): Select {
|
||||||
$this->joins[] = new Join("INNER", $table, $columnA, $columnB, $tableAlias, $conditions);
|
$this->joins[] = new InnerJoin($table, $columnA, $columnB, $tableAlias, $conditions);
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function leftJoin(string $table, string $columnA, string $columnB, ?string $tableAlias = null, array $conditions = []): Select {
|
public function leftJoin(string $table, string $columnA, string $columnB, ?string $tableAlias = null, array $conditions = []): Select {
|
||||||
$this->joins[] = new Join("LEFT", $table, $columnA, $columnB, $tableAlias, $conditions);
|
$this->joins[] = new LeftJoin($table, $columnA, $columnB, $tableAlias, $conditions);
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -133,7 +128,6 @@ class Select extends Query {
|
|||||||
|
|
||||||
public function getSelectValues(): array { return $this->selectValues; }
|
public function getSelectValues(): array { return $this->selectValues; }
|
||||||
public function getTables(): array { return $this->tables; }
|
public function getTables(): array { return $this->tables; }
|
||||||
public function getConditions(): array { return $this->conditions; }
|
|
||||||
public function getJoins(): array { return $this->joins; }
|
public function getJoins(): array { return $this->joins; }
|
||||||
public function isOrderedAscending(): bool { return $this->sortAscending; }
|
public function isOrderedAscending(): bool { return $this->sortAscending; }
|
||||||
public function getOrderBy(): array { return $this->orderColumns; }
|
public function getOrderBy(): array { return $this->orderColumns; }
|
||||||
@ -180,7 +174,7 @@ class Select extends Query {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$tables = $this->sql->tableName($tables);
|
$tables = $this->sql->tableName($tables);
|
||||||
$where = $this->sql->getWhereClause($this->getConditions(), $params);
|
$where = $this->getWhereClause($params);
|
||||||
$havingClause = "";
|
$havingClause = "";
|
||||||
if (count($this->havings) > 0) {
|
if (count($this->havings) > 0) {
|
||||||
$havingClause = " HAVING " . $this->sql->buildCondition($this->getHavings(), $params);
|
$havingClause = " HAVING " . $this->sql->buildCondition($this->getHavings(), $params);
|
||||||
|
@ -2,25 +2,17 @@
|
|||||||
|
|
||||||
namespace Core\Driver\SQL\Query;
|
namespace Core\Driver\SQL\Query;
|
||||||
|
|
||||||
use Core\Driver\SQL\Condition\CondOr;
|
|
||||||
use Core\Driver\SQL\SQL;
|
use Core\Driver\SQL\SQL;
|
||||||
|
|
||||||
class Update extends Query {
|
class Update extends ConditionalQuery {
|
||||||
|
|
||||||
private array $values;
|
private array $values;
|
||||||
private string $table;
|
private string $table;
|
||||||
private array $conditions;
|
|
||||||
|
|
||||||
public function __construct(SQL $sql, string $table) {
|
public function __construct(SQL $sql, string $table) {
|
||||||
parent::__construct($sql);
|
parent::__construct($sql);
|
||||||
$this->values = array();
|
$this->values = array();
|
||||||
$this->table = $table;
|
$this->table = $table;
|
||||||
$this->conditions = array();
|
|
||||||
}
|
|
||||||
|
|
||||||
public function where(...$conditions): Update {
|
|
||||||
$this->conditions[] = (count($conditions) === 1 ? $conditions : new CondOr($conditions));
|
|
||||||
return $this;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function set(string $key, $val): Update {
|
public function set(string $key, $val): Update {
|
||||||
@ -29,7 +21,6 @@ class Update extends Query {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function getTable(): string { return $this->table; }
|
public function getTable(): string { return $this->table; }
|
||||||
public function getConditions(): array { return $this->conditions; }
|
|
||||||
public function getValues(): array { return $this->values; }
|
public function getValues(): array { return $this->values; }
|
||||||
|
|
||||||
public function build(array &$params): ?string {
|
public function build(array &$params): ?string {
|
||||||
@ -41,7 +32,7 @@ class Update extends Query {
|
|||||||
}
|
}
|
||||||
$valueStr = implode(",", $valueStr);
|
$valueStr = implode(",", $valueStr);
|
||||||
|
|
||||||
$where = $this->sql->getWhereClause($this->getConditions(), $params);
|
$where = $this->getWhereClause($params);
|
||||||
return "UPDATE $table SET $valueStr$where";
|
return "UPDATE $table SET $valueStr$where";
|
||||||
}
|
}
|
||||||
}
|
}
|
548
Core/External/composer.lock
generated
vendored
548
Core/External/composer.lock
generated
vendored
@ -4,7 +4,7 @@
|
|||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "af894b476b8bab945acf32399608ac5f",
|
"content-hash": "dc183c367dc010feed9b7ddaa7d54559",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "beberlei/assert",
|
"name": "beberlei/assert",
|
||||||
@ -135,20 +135,20 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "chillerlan/php-qrcode",
|
"name": "chillerlan/php-qrcode",
|
||||||
"version": "4.3.3",
|
"version": "4.3.4",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/chillerlan/php-qrcode.git",
|
"url": "https://github.com/chillerlan/php-qrcode.git",
|
||||||
"reference": "6356b246948ac1025882b3f55e7c68ebd4515ae3"
|
"reference": "2ca4bf5ae048af1981d1023ee42a0a2a9d51e51d"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/chillerlan/php-qrcode/zipball/6356b246948ac1025882b3f55e7c68ebd4515ae3",
|
"url": "https://api.github.com/repos/chillerlan/php-qrcode/zipball/2ca4bf5ae048af1981d1023ee42a0a2a9d51e51d",
|
||||||
"reference": "6356b246948ac1025882b3f55e7c68ebd4515ae3",
|
"reference": "2ca4bf5ae048af1981d1023ee42a0a2a9d51e51d",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"chillerlan/php-settings-container": "^2.1",
|
"chillerlan/php-settings-container": "^2.1.4",
|
||||||
"ext-mbstring": "*",
|
"ext-mbstring": "*",
|
||||||
"php": "^7.4 || ^8.0"
|
"php": "^7.4 || ^8.0"
|
||||||
},
|
},
|
||||||
@ -197,7 +197,7 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/chillerlan/php-qrcode/issues",
|
"issues": "https://github.com/chillerlan/php-qrcode/issues",
|
||||||
"source": "https://github.com/chillerlan/php-qrcode/tree/4.3.3"
|
"source": "https://github.com/chillerlan/php-qrcode/tree/4.3.4"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -209,20 +209,20 @@
|
|||||||
"type": "ko_fi"
|
"type": "ko_fi"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2021-11-25T22:38:09+00:00"
|
"time": "2022-07-25T09:12:45+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "chillerlan/php-settings-container",
|
"name": "chillerlan/php-settings-container",
|
||||||
"version": "2.1.3",
|
"version": "2.1.4",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/chillerlan/php-settings-container.git",
|
"url": "https://github.com/chillerlan/php-settings-container.git",
|
||||||
"reference": "125dd573b45ffc7cabecf385986a356ba2c6f602"
|
"reference": "1beb7df3c14346d4344b0b2e12f6f9a74feabd4a"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/chillerlan/php-settings-container/zipball/125dd573b45ffc7cabecf385986a356ba2c6f602",
|
"url": "https://api.github.com/repos/chillerlan/php-settings-container/zipball/1beb7df3c14346d4344b0b2e12f6f9a74feabd4a",
|
||||||
"reference": "125dd573b45ffc7cabecf385986a356ba2c6f602",
|
"reference": "1beb7df3c14346d4344b0b2e12f6f9a74feabd4a",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -273,7 +273,7 @@
|
|||||||
"type": "ko_fi"
|
"type": "ko_fi"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2022-03-09T13:18:58+00:00"
|
"time": "2022-07-05T22:32:14+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "christian-riesen/base32",
|
"name": "christian-riesen/base32",
|
||||||
@ -411,16 +411,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "firebase/php-jwt",
|
"name": "firebase/php-jwt",
|
||||||
"version": "v6.2.0",
|
"version": "v6.3.1",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/firebase/php-jwt.git",
|
"url": "https://github.com/firebase/php-jwt.git",
|
||||||
"reference": "d28e6df83830252650da4623c78aaaf98fb385f3"
|
"reference": "ddfaddcb520488b42bca3a75e17e9dd53c3667da"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/firebase/php-jwt/zipball/d28e6df83830252650da4623c78aaaf98fb385f3",
|
"url": "https://api.github.com/repos/firebase/php-jwt/zipball/ddfaddcb520488b42bca3a75e17e9dd53c3667da",
|
||||||
"reference": "d28e6df83830252650da4623c78aaaf98fb385f3",
|
"reference": "ddfaddcb520488b42bca3a75e17e9dd53c3667da",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -467,22 +467,63 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/firebase/php-jwt/issues",
|
"issues": "https://github.com/firebase/php-jwt/issues",
|
||||||
"source": "https://github.com/firebase/php-jwt/tree/v6.2.0"
|
"source": "https://github.com/firebase/php-jwt/tree/v6.3.1"
|
||||||
},
|
},
|
||||||
"time": "2022-05-13T20:54:50+00:00"
|
"time": "2022-11-01T21:20:08+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "myclabs/php-enum",
|
"name": "html2text/html2text",
|
||||||
"version": "1.8.3",
|
"version": "4.3.1",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/myclabs/php-enum.git",
|
"url": "https://github.com/mtibben/html2text.git",
|
||||||
"reference": "b942d263c641ddb5190929ff840c68f78713e937"
|
"reference": "61ad68e934066a6f8df29a3d23a6460536d0855c"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/myclabs/php-enum/zipball/b942d263c641ddb5190929ff840c68f78713e937",
|
"url": "https://api.github.com/repos/mtibben/html2text/zipball/61ad68e934066a6f8df29a3d23a6460536d0855c",
|
||||||
"reference": "b942d263c641ddb5190929ff840c68f78713e937",
|
"reference": "61ad68e934066a6f8df29a3d23a6460536d0855c",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "~4"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"ext-mbstring": "For best performance",
|
||||||
|
"symfony/polyfill-mbstring": "If you can't install ext-mbstring"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Html2Text\\": [
|
||||||
|
"src/",
|
||||||
|
"test/"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"GPL-2.0-or-later"
|
||||||
|
],
|
||||||
|
"description": "Converts HTML to formatted plain text",
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/mtibben/html2text/issues",
|
||||||
|
"source": "https://github.com/mtibben/html2text/tree/4.3.1"
|
||||||
|
},
|
||||||
|
"time": "2020-04-16T23:44:31+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "myclabs/php-enum",
|
||||||
|
"version": "1.8.4",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/myclabs/php-enum.git",
|
||||||
|
"reference": "a867478eae49c9f59ece437ae7f9506bfaa27483"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/myclabs/php-enum/zipball/a867478eae49c9f59ece437ae7f9506bfaa27483",
|
||||||
|
"reference": "a867478eae49c9f59ece437ae7f9506bfaa27483",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -498,7 +539,10 @@
|
|||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"MyCLabs\\Enum\\": "src/"
|
"MyCLabs\\Enum\\": "src/"
|
||||||
}
|
},
|
||||||
|
"classmap": [
|
||||||
|
"stubs/Stringable.php"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
"license": [
|
"license": [
|
||||||
@ -517,7 +561,7 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/myclabs/php-enum/issues",
|
"issues": "https://github.com/myclabs/php-enum/issues",
|
||||||
"source": "https://github.com/myclabs/php-enum/tree/1.8.3"
|
"source": "https://github.com/myclabs/php-enum/tree/1.8.4"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -529,20 +573,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2021-07-05T08:18:36+00:00"
|
"time": "2022-08-04T09:53:51+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "php-mqtt/client",
|
"name": "php-mqtt/client",
|
||||||
"version": "v1.4.0",
|
"version": "v1.6.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/php-mqtt/client.git",
|
"url": "https://github.com/php-mqtt/client.git",
|
||||||
"reference": "d54381306e68baf7c2c089392c0c6d1d06e278c6"
|
"reference": "22a207edef01d5f0ed3a6a79565cc425b678d786"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/php-mqtt/client/zipball/d54381306e68baf7c2c089392c0c6d1d06e278c6",
|
"url": "https://api.github.com/repos/php-mqtt/client/zipball/22a207edef01d5f0ed3a6a79565cc425b678d786",
|
||||||
"reference": "d54381306e68baf7c2c089392c0c6d1d06e278c6",
|
"reference": "22a207edef01d5f0ed3a6a79565cc425b678d786",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -584,36 +628,36 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/php-mqtt/client/issues",
|
"issues": "https://github.com/php-mqtt/client/issues",
|
||||||
"source": "https://github.com/php-mqtt/client/tree/v1.4.0"
|
"source": "https://github.com/php-mqtt/client/tree/v1.6.0"
|
||||||
},
|
},
|
||||||
"time": "2022-06-15T19:19:03+00:00"
|
"time": "2022-11-01T20:00:19+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "psr/log",
|
"name": "psr/log",
|
||||||
"version": "1.1.4",
|
"version": "3.0.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/php-fig/log.git",
|
"url": "https://github.com/php-fig/log.git",
|
||||||
"reference": "d49695b909c3b7628b6289db5479a1c204601f11"
|
"reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11",
|
"url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001",
|
||||||
"reference": "d49695b909c3b7628b6289db5479a1c204601f11",
|
"reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=5.3.0"
|
"php": ">=8.0.0"
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-master": "1.1.x-dev"
|
"dev-master": "3.x-dev"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"Psr\\Log\\": "Psr/Log/"
|
"Psr\\Log\\": "src"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
@ -634,9 +678,9 @@
|
|||||||
"psr-3"
|
"psr-3"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/php-fig/log/tree/1.1.4"
|
"source": "https://github.com/php-fig/log/tree/3.0.0"
|
||||||
},
|
},
|
||||||
"time": "2021-05-03T11:20:27+00:00"
|
"time": "2021-07-14T16:46:02+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "spomky-labs/cbor-php",
|
"name": "spomky-labs/cbor-php",
|
||||||
@ -720,16 +764,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/polyfill-ctype",
|
"name": "symfony/polyfill-ctype",
|
||||||
"version": "v1.26.0",
|
"version": "v1.27.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/polyfill-ctype.git",
|
"url": "https://github.com/symfony/polyfill-ctype.git",
|
||||||
"reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4"
|
"reference": "5bbc823adecdae860bb64756d639ecfec17b050a"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4",
|
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a",
|
||||||
"reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4",
|
"reference": "5bbc823adecdae860bb64756d639ecfec17b050a",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -744,7 +788,7 @@
|
|||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-main": "1.26-dev"
|
"dev-main": "1.27-dev"
|
||||||
},
|
},
|
||||||
"thanks": {
|
"thanks": {
|
||||||
"name": "symfony/polyfill",
|
"name": "symfony/polyfill",
|
||||||
@ -782,7 +826,7 @@
|
|||||||
"portable"
|
"portable"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.26.0"
|
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -798,20 +842,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2022-05-24T11:49:31+00:00"
|
"time": "2022-11-03T14:55:06+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/polyfill-mbstring",
|
"name": "symfony/polyfill-mbstring",
|
||||||
"version": "v1.26.0",
|
"version": "v1.27.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
||||||
"reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e"
|
"reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e",
|
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
|
||||||
"reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e",
|
"reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -826,7 +870,7 @@
|
|||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-main": "1.26-dev"
|
"dev-main": "1.27-dev"
|
||||||
},
|
},
|
||||||
"thanks": {
|
"thanks": {
|
||||||
"name": "symfony/polyfill",
|
"name": "symfony/polyfill",
|
||||||
@ -865,7 +909,7 @@
|
|||||||
"shim"
|
"shim"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.26.0"
|
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -881,20 +925,20 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2022-05-24T11:49:31+00:00"
|
"time": "2022-11-03T14:55:06+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "twig/twig",
|
"name": "twig/twig",
|
||||||
"version": "v3.4.1",
|
"version": "v3.4.3",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/twigphp/Twig.git",
|
"url": "https://github.com/twigphp/Twig.git",
|
||||||
"reference": "e939eae92386b69b49cfa4599dd9bead6bf4a342"
|
"reference": "c38fd6b0b7f370c198db91ffd02e23b517426b58"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/twigphp/Twig/zipball/e939eae92386b69b49cfa4599dd9bead6bf4a342",
|
"url": "https://api.github.com/repos/twigphp/Twig/zipball/c38fd6b0b7f370c198db91ffd02e23b517426b58",
|
||||||
"reference": "e939eae92386b69b49cfa4599dd9bead6bf4a342",
|
"reference": "c38fd6b0b7f370c198db91ffd02e23b517426b58",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -945,7 +989,7 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/twigphp/Twig/issues",
|
"issues": "https://github.com/twigphp/Twig/issues",
|
||||||
"source": "https://github.com/twigphp/Twig/tree/v3.4.1"
|
"source": "https://github.com/twigphp/Twig/tree/v3.4.3"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -957,7 +1001,7 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2022-05-17T05:48:52+00:00"
|
"time": "2022-09-28T08:42:51+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "web-auth/cose-lib",
|
"name": "web-auth/cose-lib",
|
||||||
@ -1155,16 +1199,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "nikic/php-parser",
|
"name": "nikic/php-parser",
|
||||||
"version": "v4.14.0",
|
"version": "v4.15.2",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/nikic/PHP-Parser.git",
|
"url": "https://github.com/nikic/PHP-Parser.git",
|
||||||
"reference": "34bea19b6e03d8153165d8f30bba4c3be86184c1"
|
"reference": "f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/34bea19b6e03d8153165d8f30bba4c3be86184c1",
|
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc",
|
||||||
"reference": "34bea19b6e03d8153165d8f30bba4c3be86184c1",
|
"reference": "f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -1205,9 +1249,9 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/nikic/PHP-Parser/issues",
|
"issues": "https://github.com/nikic/PHP-Parser/issues",
|
||||||
"source": "https://github.com/nikic/PHP-Parser/tree/v4.14.0"
|
"source": "https://github.com/nikic/PHP-Parser/tree/v4.15.2"
|
||||||
},
|
},
|
||||||
"time": "2022-05-31T20:59:12+00:00"
|
"time": "2022-11-12T15:38:23+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phar-io/manifest",
|
"name": "phar-io/manifest",
|
||||||
@ -1320,252 +1364,25 @@
|
|||||||
},
|
},
|
||||||
"time": "2022-02-21T01:04:05+00:00"
|
"time": "2022-02-21T01:04:05+00:00"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "phpdocumentor/reflection-common",
|
|
||||||
"version": "2.2.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/phpDocumentor/ReflectionCommon.git",
|
|
||||||
"reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b",
|
|
||||||
"reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": "^7.2 || ^8.0"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-2.x": "2.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"phpDocumentor\\Reflection\\": "src/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Jaap van Otterdijk",
|
|
||||||
"email": "opensource@ijaap.nl"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Common reflection classes used by phpdocumentor to reflect the code structure",
|
|
||||||
"homepage": "http://www.phpdoc.org",
|
|
||||||
"keywords": [
|
|
||||||
"FQSEN",
|
|
||||||
"phpDocumentor",
|
|
||||||
"phpdoc",
|
|
||||||
"reflection",
|
|
||||||
"static analysis"
|
|
||||||
],
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/phpDocumentor/ReflectionCommon/issues",
|
|
||||||
"source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x"
|
|
||||||
},
|
|
||||||
"time": "2020-06-27T09:03:43+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "phpdocumentor/reflection-docblock",
|
|
||||||
"version": "5.3.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
|
|
||||||
"reference": "622548b623e81ca6d78b721c5e029f4ce664f170"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170",
|
|
||||||
"reference": "622548b623e81ca6d78b721c5e029f4ce664f170",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"ext-filter": "*",
|
|
||||||
"php": "^7.2 || ^8.0",
|
|
||||||
"phpdocumentor/reflection-common": "^2.2",
|
|
||||||
"phpdocumentor/type-resolver": "^1.3",
|
|
||||||
"webmozart/assert": "^1.9.1"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"mockery/mockery": "~1.3.2",
|
|
||||||
"psalm/phar": "^4.8"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "5.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"phpDocumentor\\Reflection\\": "src"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Mike van Riel",
|
|
||||||
"email": "me@mikevanriel.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Jaap van Otterdijk",
|
|
||||||
"email": "account@ijaap.nl"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
|
|
||||||
"source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0"
|
|
||||||
},
|
|
||||||
"time": "2021-10-19T17:43:47+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "phpdocumentor/type-resolver",
|
|
||||||
"version": "1.6.1",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/phpDocumentor/TypeResolver.git",
|
|
||||||
"reference": "77a32518733312af16a44300404e945338981de3"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/77a32518733312af16a44300404e945338981de3",
|
|
||||||
"reference": "77a32518733312af16a44300404e945338981de3",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": "^7.2 || ^8.0",
|
|
||||||
"phpdocumentor/reflection-common": "^2.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"ext-tokenizer": "*",
|
|
||||||
"psalm/phar": "^4.8"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-1.x": "1.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"phpDocumentor\\Reflection\\": "src"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Mike van Riel",
|
|
||||||
"email": "me@mikevanriel.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/phpDocumentor/TypeResolver/issues",
|
|
||||||
"source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.1"
|
|
||||||
},
|
|
||||||
"time": "2022-03-15T21:29:03+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "phpspec/prophecy",
|
|
||||||
"version": "v1.15.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/phpspec/prophecy.git",
|
|
||||||
"reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/phpspec/prophecy/zipball/bbcd7380b0ebf3961ee21409db7b38bc31d69a13",
|
|
||||||
"reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"doctrine/instantiator": "^1.2",
|
|
||||||
"php": "^7.2 || ~8.0, <8.2",
|
|
||||||
"phpdocumentor/reflection-docblock": "^5.2",
|
|
||||||
"sebastian/comparator": "^3.0 || ^4.0",
|
|
||||||
"sebastian/recursion-context": "^3.0 || ^4.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpspec/phpspec": "^6.0 || ^7.0",
|
|
||||||
"phpunit/phpunit": "^8.0 || ^9.0"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Prophecy\\": "src/Prophecy"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Konstantin Kudryashov",
|
|
||||||
"email": "ever.zet@gmail.com",
|
|
||||||
"homepage": "http://everzet.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Marcello Duarte",
|
|
||||||
"email": "marcello.duarte@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Highly opinionated mocking framework for PHP 5.3+",
|
|
||||||
"homepage": "https://github.com/phpspec/prophecy",
|
|
||||||
"keywords": [
|
|
||||||
"Double",
|
|
||||||
"Dummy",
|
|
||||||
"fake",
|
|
||||||
"mock",
|
|
||||||
"spy",
|
|
||||||
"stub"
|
|
||||||
],
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/phpspec/prophecy/issues",
|
|
||||||
"source": "https://github.com/phpspec/prophecy/tree/v1.15.0"
|
|
||||||
},
|
|
||||||
"time": "2021-12-08T12:19:24+00:00"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "phpunit/php-code-coverage",
|
"name": "phpunit/php-code-coverage",
|
||||||
"version": "9.2.15",
|
"version": "9.2.19",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
|
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
|
||||||
"reference": "2e9da11878c4202f97915c1cb4bb1ca318a63f5f"
|
"reference": "c77b56b63e3d2031bd8997fcec43c1925ae46559"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2e9da11878c4202f97915c1cb4bb1ca318a63f5f",
|
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/c77b56b63e3d2031bd8997fcec43c1925ae46559",
|
||||||
"reference": "2e9da11878c4202f97915c1cb4bb1ca318a63f5f",
|
"reference": "c77b56b63e3d2031bd8997fcec43c1925ae46559",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"ext-dom": "*",
|
"ext-dom": "*",
|
||||||
"ext-libxml": "*",
|
"ext-libxml": "*",
|
||||||
"ext-xmlwriter": "*",
|
"ext-xmlwriter": "*",
|
||||||
"nikic/php-parser": "^4.13.0",
|
"nikic/php-parser": "^4.14",
|
||||||
"php": ">=7.3",
|
"php": ">=7.3",
|
||||||
"phpunit/php-file-iterator": "^3.0.3",
|
"phpunit/php-file-iterator": "^3.0.3",
|
||||||
"phpunit/php-text-template": "^2.0.2",
|
"phpunit/php-text-template": "^2.0.2",
|
||||||
@ -1614,7 +1431,7 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
|
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
|
||||||
"source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.15"
|
"source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.19"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -1622,7 +1439,7 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2022-03-07T09:28:20+00:00"
|
"time": "2022-11-18T07:47:47+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phpunit/php-file-iterator",
|
"name": "phpunit/php-file-iterator",
|
||||||
@ -1867,16 +1684,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phpunit/phpunit",
|
"name": "phpunit/phpunit",
|
||||||
"version": "9.5.20",
|
"version": "9.5.26",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/sebastianbergmann/phpunit.git",
|
"url": "https://github.com/sebastianbergmann/phpunit.git",
|
||||||
"reference": "12bc8879fb65aef2138b26fc633cb1e3620cffba"
|
"reference": "851867efcbb6a1b992ec515c71cdcf20d895e9d2"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/12bc8879fb65aef2138b26fc633cb1e3620cffba",
|
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/851867efcbb6a1b992ec515c71cdcf20d895e9d2",
|
||||||
"reference": "12bc8879fb65aef2138b26fc633cb1e3620cffba",
|
"reference": "851867efcbb6a1b992ec515c71cdcf20d895e9d2",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -1891,7 +1708,6 @@
|
|||||||
"phar-io/manifest": "^2.0.3",
|
"phar-io/manifest": "^2.0.3",
|
||||||
"phar-io/version": "^3.0.2",
|
"phar-io/version": "^3.0.2",
|
||||||
"php": ">=7.3",
|
"php": ">=7.3",
|
||||||
"phpspec/prophecy": "^1.12.1",
|
|
||||||
"phpunit/php-code-coverage": "^9.2.13",
|
"phpunit/php-code-coverage": "^9.2.13",
|
||||||
"phpunit/php-file-iterator": "^3.0.5",
|
"phpunit/php-file-iterator": "^3.0.5",
|
||||||
"phpunit/php-invoker": "^3.1.1",
|
"phpunit/php-invoker": "^3.1.1",
|
||||||
@ -1899,20 +1715,16 @@
|
|||||||
"phpunit/php-timer": "^5.0.2",
|
"phpunit/php-timer": "^5.0.2",
|
||||||
"sebastian/cli-parser": "^1.0.1",
|
"sebastian/cli-parser": "^1.0.1",
|
||||||
"sebastian/code-unit": "^1.0.6",
|
"sebastian/code-unit": "^1.0.6",
|
||||||
"sebastian/comparator": "^4.0.5",
|
"sebastian/comparator": "^4.0.8",
|
||||||
"sebastian/diff": "^4.0.3",
|
"sebastian/diff": "^4.0.3",
|
||||||
"sebastian/environment": "^5.1.3",
|
"sebastian/environment": "^5.1.3",
|
||||||
"sebastian/exporter": "^4.0.3",
|
"sebastian/exporter": "^4.0.5",
|
||||||
"sebastian/global-state": "^5.0.1",
|
"sebastian/global-state": "^5.0.1",
|
||||||
"sebastian/object-enumerator": "^4.0.3",
|
"sebastian/object-enumerator": "^4.0.3",
|
||||||
"sebastian/resource-operations": "^3.0.3",
|
"sebastian/resource-operations": "^3.0.3",
|
||||||
"sebastian/type": "^3.0",
|
"sebastian/type": "^3.2",
|
||||||
"sebastian/version": "^3.0.2"
|
"sebastian/version": "^3.0.2"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
|
||||||
"ext-pdo": "*",
|
|
||||||
"phpspec/prophecy-phpunit": "^2.0.1"
|
|
||||||
},
|
|
||||||
"suggest": {
|
"suggest": {
|
||||||
"ext-soap": "*",
|
"ext-soap": "*",
|
||||||
"ext-xdebug": "*"
|
"ext-xdebug": "*"
|
||||||
@ -1954,7 +1766,7 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
|
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
|
||||||
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.20"
|
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.26"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -1964,9 +1776,13 @@
|
|||||||
{
|
{
|
||||||
"url": "https://github.com/sebastianbergmann",
|
"url": "https://github.com/sebastianbergmann",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit",
|
||||||
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2022-04-01T12:37:26+00:00"
|
"time": "2022-10-28T06:00:21+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sebastian/cli-parser",
|
"name": "sebastian/cli-parser",
|
||||||
@ -2137,16 +1953,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sebastian/comparator",
|
"name": "sebastian/comparator",
|
||||||
"version": "4.0.6",
|
"version": "4.0.8",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/sebastianbergmann/comparator.git",
|
"url": "https://github.com/sebastianbergmann/comparator.git",
|
||||||
"reference": "55f4261989e546dc112258c7a75935a81a7ce382"
|
"reference": "fa0f136dd2334583309d32b62544682ee972b51a"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55f4261989e546dc112258c7a75935a81a7ce382",
|
"url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a",
|
||||||
"reference": "55f4261989e546dc112258c7a75935a81a7ce382",
|
"reference": "fa0f136dd2334583309d32b62544682ee972b51a",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -2199,7 +2015,7 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/sebastianbergmann/comparator/issues",
|
"issues": "https://github.com/sebastianbergmann/comparator/issues",
|
||||||
"source": "https://github.com/sebastianbergmann/comparator/tree/4.0.6"
|
"source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -2207,7 +2023,7 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2020-10-26T15:49:45+00:00"
|
"time": "2022-09-14T12:41:17+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sebastian/complexity",
|
"name": "sebastian/complexity",
|
||||||
@ -2397,16 +2213,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sebastian/exporter",
|
"name": "sebastian/exporter",
|
||||||
"version": "4.0.4",
|
"version": "4.0.5",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/sebastianbergmann/exporter.git",
|
"url": "https://github.com/sebastianbergmann/exporter.git",
|
||||||
"reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9"
|
"reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/65e8b7db476c5dd267e65eea9cab77584d3cfff9",
|
"url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d",
|
||||||
"reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9",
|
"reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -2462,7 +2278,7 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/sebastianbergmann/exporter/issues",
|
"issues": "https://github.com/sebastianbergmann/exporter/issues",
|
||||||
"source": "https://github.com/sebastianbergmann/exporter/tree/4.0.4"
|
"source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -2470,7 +2286,7 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2021-11-11T14:18:36+00:00"
|
"time": "2022-09-14T06:03:37+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sebastian/global-state",
|
"name": "sebastian/global-state",
|
||||||
@ -2825,16 +2641,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sebastian/type",
|
"name": "sebastian/type",
|
||||||
"version": "3.0.0",
|
"version": "3.2.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/sebastianbergmann/type.git",
|
"url": "https://github.com/sebastianbergmann/type.git",
|
||||||
"reference": "b233b84bc4465aff7b57cf1c4bc75c86d00d6dad"
|
"reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/type/zipball/b233b84bc4465aff7b57cf1c4bc75c86d00d6dad",
|
"url": "https://api.github.com/repos/sebastianbergmann/type/zipball/fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e",
|
||||||
"reference": "b233b84bc4465aff7b57cf1c4bc75c86d00d6dad",
|
"reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -2846,7 +2662,7 @@
|
|||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-master": "3.0-dev"
|
"dev-master": "3.2-dev"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@ -2869,7 +2685,7 @@
|
|||||||
"homepage": "https://github.com/sebastianbergmann/type",
|
"homepage": "https://github.com/sebastianbergmann/type",
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/sebastianbergmann/type/issues",
|
"issues": "https://github.com/sebastianbergmann/type/issues",
|
||||||
"source": "https://github.com/sebastianbergmann/type/tree/3.0.0"
|
"source": "https://github.com/sebastianbergmann/type/tree/3.2.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@ -2877,7 +2693,7 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2022-03-15T09:54:48+00:00"
|
"time": "2022-09-12T14:47:03+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sebastian/version",
|
"name": "sebastian/version",
|
||||||
@ -2981,64 +2797,6 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2021-07-28T10:34:58+00:00"
|
"time": "2021-07-28T10:34:58+00:00"
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "webmozart/assert",
|
|
||||||
"version": "1.11.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/webmozarts/assert.git",
|
|
||||||
"reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991",
|
|
||||||
"reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"ext-ctype": "*",
|
|
||||||
"php": "^7.2 || ^8.0"
|
|
||||||
},
|
|
||||||
"conflict": {
|
|
||||||
"phpstan/phpstan": "<0.12.20",
|
|
||||||
"vimeo/psalm": "<4.6.1 || 4.6.2"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "^8.5.13"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.10-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Webmozart\\Assert\\": "src/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Bernhard Schussek",
|
|
||||||
"email": "bschussek@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Assertions to validate method input/output with nice error messages.",
|
|
||||||
"keywords": [
|
|
||||||
"assert",
|
|
||||||
"check",
|
|
||||||
"validate"
|
|
||||||
],
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/webmozarts/assert/issues",
|
|
||||||
"source": "https://github.com/webmozarts/assert/tree/1.11.0"
|
|
||||||
},
|
|
||||||
"time": "2022-06-03T18:03:27+00:00"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
@ -3048,5 +2806,5 @@
|
|||||||
"prefer-lowest": false,
|
"prefer-lowest": false,
|
||||||
"platform": [],
|
"platform": [],
|
||||||
"platform-dev": [],
|
"platform-dev": [],
|
||||||
"plugin-api-version": "2.2.0"
|
"plugin-api-version": "2.3.0"
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ use Core\Configuration\Settings;
|
|||||||
use Core\Driver\SQL\Condition\Compare;
|
use Core\Driver\SQL\Condition\Compare;
|
||||||
use Core\Driver\SQL\Condition\CondLike;
|
use Core\Driver\SQL\Condition\CondLike;
|
||||||
use Core\Driver\SQL\Condition\CondOr;
|
use Core\Driver\SQL\Condition\CondOr;
|
||||||
use Core\Driver\SQL\Join;
|
use Core\Driver\SQL\Join\InnerJoin;
|
||||||
use Core\Driver\SQL\SQL;
|
use Core\Driver\SQL\SQL;
|
||||||
use Firebase\JWT\JWT;
|
use Firebase\JWT\JWT;
|
||||||
use Core\Objects\DatabaseEntity\Language;
|
use Core\Objects\DatabaseEntity\Language;
|
||||||
@ -179,11 +179,11 @@ class Context {
|
|||||||
|
|
||||||
public function loadApiKey(string $apiKey): bool {
|
public function loadApiKey(string $apiKey): bool {
|
||||||
$this->user = User::findBy(User::createBuilder($this->sql, true)
|
$this->user = User::findBy(User::createBuilder($this->sql, true)
|
||||||
->addJoin(new Join("INNER","ApiKey", "ApiKey.user_id", "User.id"))
|
->addJoin(new InnerJoin("ApiKey", "ApiKey.user_id", "User.id"))
|
||||||
->where(new Compare("ApiKey.api_key", $apiKey))
|
->whereEq("ApiKey.api_key", $apiKey)
|
||||||
->where(new Compare("valid_until", $this->sql->currentTimestamp(), ">"))
|
->whereGt("valid_until", $this->sql->currentTimestamp())
|
||||||
->where(new Compare("ApiKey.active", true))
|
->whereTrue("ApiKey.active", true)
|
||||||
->where(new Compare("User.confirmed", true))
|
->whereTrue("User.confirmed", true)
|
||||||
->fetchEntities());
|
->fetchEntities());
|
||||||
|
|
||||||
return $this->user !== null;
|
return $this->user !== null;
|
||||||
|
@ -40,7 +40,7 @@ abstract class DatabaseEntity {
|
|||||||
$handler = self::getHandler($sql);
|
$handler = self::getHandler($sql);
|
||||||
if ($fetchEntities) {
|
if ($fetchEntities) {
|
||||||
return DatabaseEntityQuery::fetchOne(self::getHandler($sql))
|
return DatabaseEntityQuery::fetchOne(self::getHandler($sql))
|
||||||
->where(new Compare($handler->getTableName() . ".id", $id))
|
->whereEq($handler->getTableName() . ".id", $id)
|
||||||
->fetchEntities($fetchRecursive)
|
->fetchEntities($fetchRecursive)
|
||||||
->execute();
|
->execute();
|
||||||
} else {
|
} else {
|
||||||
@ -52,7 +52,7 @@ abstract class DatabaseEntity {
|
|||||||
$handler = self::getHandler($sql);
|
$handler = self::getHandler($sql);
|
||||||
$res = $sql->select($sql->count())
|
$res = $sql->select($sql->count())
|
||||||
->from($handler->getTableName())
|
->from($handler->getTableName())
|
||||||
->where(new Compare($handler->getTableName() . ".id", $id))
|
->whereEq($handler->getTableName() . ".id", $id)
|
||||||
->execute();
|
->execute();
|
||||||
|
|
||||||
return $res !== false && $res[0]["count"] !== 0;
|
return $res !== false && $res[0]["count"] !== 0;
|
||||||
|
@ -20,7 +20,7 @@ use Core\Driver\SQL\Column\FloatColumn;
|
|||||||
use Core\Driver\SQL\Condition\CondNot;
|
use Core\Driver\SQL\Condition\CondNot;
|
||||||
use Core\Driver\SQL\Condition\CondOr;
|
use Core\Driver\SQL\Condition\CondOr;
|
||||||
use Core\Driver\SQL\Constraint\ForeignKey;
|
use Core\Driver\SQL\Constraint\ForeignKey;
|
||||||
use Core\Driver\SQL\Join;
|
use Core\Driver\SQL\Join\InnerJoin;
|
||||||
use Core\Driver\SQL\Query\CreateProcedure;
|
use Core\Driver\SQL\Query\CreateProcedure;
|
||||||
use Core\Driver\SQL\Query\CreateTable;
|
use Core\Driver\SQL\Query\CreateTable;
|
||||||
use Core\Driver\SQL\Query\Insert;
|
use Core\Driver\SQL\Query\Insert;
|
||||||
@ -323,7 +323,7 @@ class DatabaseEntityHandler implements Persistable {
|
|||||||
|
|
||||||
// delete from n:m table if no longer exists
|
// delete from n:m table if no longer exists
|
||||||
$deleteStatement = $this->sql->delete($nmTable)
|
$deleteStatement = $this->sql->delete($nmTable)
|
||||||
->where(new Compare($thisIdColumn, $entity->getId()));
|
->whereEq($thisIdColumn, $entity->getId());
|
||||||
|
|
||||||
if (!empty($dataColumns)) {
|
if (!empty($dataColumns)) {
|
||||||
$conditions = [];
|
$conditions = [];
|
||||||
@ -439,9 +439,8 @@ class DatabaseEntityHandler implements Persistable {
|
|||||||
$dataColumns = $nmRelation->getDataColumns();
|
$dataColumns = $nmRelation->getDataColumns();
|
||||||
|
|
||||||
$relEntityQuery = DatabaseEntityQuery::fetchAll($otherHandler)
|
$relEntityQuery = DatabaseEntityQuery::fetchAll($otherHandler)
|
||||||
->addJoin(new Join("INNER", $nmTable, "$nmTable.$refIdColumn", "$refTableName.id"))
|
->addJoin(new InnerJoin($nmTable, "$nmTable.$refIdColumn", "$refTableName.id"))
|
||||||
->where(new CondIn(new Column($thisIdColumn), $entityIds))
|
->where(new CondIn(new Column($thisIdColumn), $entityIds));
|
||||||
->getQuery();
|
|
||||||
|
|
||||||
$relEntityQuery->addColumn($thisIdColumn);
|
$relEntityQuery->addColumn($thisIdColumn);
|
||||||
foreach ($dataColumns as $tableDataColumns) {
|
foreach ($dataColumns as $tableDataColumns) {
|
||||||
@ -498,7 +497,7 @@ class DatabaseEntityHandler implements Persistable {
|
|||||||
|
|
||||||
public function fetchOne(int $id): DatabaseEntity|bool|null {
|
public function fetchOne(int $id): DatabaseEntity|bool|null {
|
||||||
$res = $this->getSelectQuery()
|
$res = $this->getSelectQuery()
|
||||||
->where(new Compare($this->tableName . ".id", $id))
|
->whereEq($this->tableName . ".id", $id)
|
||||||
->first()
|
->first()
|
||||||
->execute();
|
->execute();
|
||||||
|
|
||||||
@ -637,7 +636,7 @@ class DatabaseEntityHandler implements Persistable {
|
|||||||
|
|
||||||
$entity->preInsert($row);
|
$entity->preInsert($row);
|
||||||
$query = $this->sql->update($this->tableName)
|
$query = $this->sql->update($this->tableName)
|
||||||
->where(new Compare($this->tableName . ".id", $entity->getId()));
|
->whereEq($this->tableName . ".id", $entity->getId());
|
||||||
|
|
||||||
foreach ($row as $columnName => $value) {
|
foreach ($row as $columnName => $value) {
|
||||||
$query->set($columnName, $value);
|
$query->set($columnName, $value);
|
||||||
@ -693,7 +692,7 @@ class DatabaseEntityHandler implements Persistable {
|
|||||||
public function delete(int $id) {
|
public function delete(int $id) {
|
||||||
return $this->sql
|
return $this->sql
|
||||||
->delete($this->tableName)
|
->delete($this->tableName)
|
||||||
->where(new Compare($this->tableName . ".id", $id))
|
->whereEq($this->tableName . ".id", $id)
|
||||||
->execute();
|
->execute();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ use Core\Driver\SQL\SQL;
|
|||||||
* this class is similar to \Driver\SQL\Query\Select but with reduced functionality
|
* this class is similar to \Driver\SQL\Query\Select but with reduced functionality
|
||||||
* and more adapted to entities.
|
* and more adapted to entities.
|
||||||
*/
|
*/
|
||||||
class DatabaseEntityQuery {
|
class DatabaseEntityQuery extends Select {
|
||||||
|
|
||||||
const FETCH_NONE = 0;
|
const FETCH_NONE = 0;
|
||||||
const FETCH_DIRECT = 1;
|
const FETCH_DIRECT = 1;
|
||||||
@ -20,22 +20,22 @@ class DatabaseEntityQuery {
|
|||||||
|
|
||||||
private Logger $logger;
|
private Logger $logger;
|
||||||
private DatabaseEntityHandler $handler;
|
private DatabaseEntityHandler $handler;
|
||||||
private Select $selectQuery;
|
|
||||||
private int $resultType;
|
private int $resultType;
|
||||||
private bool $logVerbose;
|
private bool $logVerbose;
|
||||||
|
|
||||||
private int $fetchSubEntities;
|
private int $fetchSubEntities;
|
||||||
|
|
||||||
private function __construct(DatabaseEntityHandler $handler, int $resultType) {
|
private function __construct(DatabaseEntityHandler $handler, int $resultType) {
|
||||||
|
parent::__construct($handler->getSQL(), ...$handler->getColumnNames());
|
||||||
$this->handler = $handler;
|
$this->handler = $handler;
|
||||||
$this->selectQuery = $handler->getSelectQuery();
|
|
||||||
$this->logger = new Logger("DB-EntityQuery", $handler->getSQL());
|
$this->logger = new Logger("DB-EntityQuery", $handler->getSQL());
|
||||||
$this->resultType = $resultType;
|
$this->resultType = $resultType;
|
||||||
$this->logVerbose = false;
|
$this->logVerbose = false;
|
||||||
$this->fetchSubEntities = self::FETCH_NONE;
|
|
||||||
|
|
||||||
|
$this->from($handler->getTableName());
|
||||||
|
$this->fetchSubEntities = self::FETCH_NONE;
|
||||||
if ($this->resultType === SQL::FETCH_ONE) {
|
if ($this->resultType === SQL::FETCH_ONE) {
|
||||||
$this->selectQuery->first();
|
$this->first();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -52,36 +52,6 @@ class DatabaseEntityQuery {
|
|||||||
return new DatabaseEntityQuery($handler, SQL::FETCH_ONE);
|
return new DatabaseEntityQuery($handler, SQL::FETCH_ONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function limit(int $limit): DatabaseEntityQuery {
|
|
||||||
$this->selectQuery->limit($limit);
|
|
||||||
return $this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function offset(int $offset): static {
|
|
||||||
$this->selectQuery->offset($offset);
|
|
||||||
return $this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function where(Condition ...$condition): DatabaseEntityQuery {
|
|
||||||
$this->selectQuery->where(...$condition);
|
|
||||||
return $this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function orderBy(string ...$column): DatabaseEntityQuery {
|
|
||||||
$this->selectQuery->orderBy(...$column);
|
|
||||||
return $this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function ascending(): DatabaseEntityQuery {
|
|
||||||
$this->selectQuery->ascending();
|
|
||||||
return $this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function descending(): DatabaseEntityQuery {
|
|
||||||
$this->selectQuery->descending();
|
|
||||||
return $this;
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO: clean this up
|
// TODO: clean this up
|
||||||
public function fetchEntities(bool $recursive = false): DatabaseEntityQuery {
|
public function fetchEntities(bool $recursive = false): DatabaseEntityQuery {
|
||||||
|
|
||||||
@ -110,9 +80,9 @@ class DatabaseEntityQuery {
|
|||||||
|
|
||||||
|
|
||||||
if ($isNullable) {
|
if ($isNullable) {
|
||||||
$this->selectQuery->leftJoin($referencedTable, "$tableName.$foreignColumnName", "$alias.id", $alias);
|
$this->leftJoin($referencedTable, "$tableName.$foreignColumnName", "$alias.id", $alias);
|
||||||
} else {
|
} else {
|
||||||
$this->selectQuery->innerJoin($referencedTable, "$tableName.$foreignColumnName", "$alias.id", $alias);
|
$this->innerJoin($referencedTable, "$tableName.$foreignColumnName", "$alias.id", $alias);
|
||||||
}
|
}
|
||||||
|
|
||||||
$relationColumnPrefix .= DatabaseEntityHandler::getColumnName($propertyName) . "_";
|
$relationColumnPrefix .= DatabaseEntityHandler::getColumnName($propertyName) . "_";
|
||||||
@ -120,7 +90,7 @@ class DatabaseEntityQuery {
|
|||||||
foreach ($relationHandler->getColumns() as $relPropertyName => $relColumn) {
|
foreach ($relationHandler->getColumns() as $relPropertyName => $relColumn) {
|
||||||
$relColumnName = $relColumn->getName();
|
$relColumnName = $relColumn->getName();
|
||||||
if (!isset($recursiveRelations[$relPropertyName]) || $recursive) {
|
if (!isset($recursiveRelations[$relPropertyName]) || $recursive) {
|
||||||
$this->selectQuery->addValue("$alias.$relColumnName as $relationColumnPrefix$relColumnName");
|
$this->addValue("$alias.$relColumnName as $relationColumnPrefix$relColumnName");
|
||||||
if (isset($recursiveRelations[$relPropertyName]) && $recursive) {
|
if (isset($recursiveRelations[$relPropertyName]) && $recursive) {
|
||||||
$this->fetchRelation($relPropertyName, $alias, $relationHandler, $recursiveRelations[$relPropertyName], $relIndex, $recursive, $relationColumnPrefix);
|
$this->fetchRelation($relPropertyName, $alias, $relationHandler, $recursiveRelations[$relPropertyName], $relIndex, $recursive, $relationColumnPrefix);
|
||||||
}
|
}
|
||||||
@ -132,11 +102,11 @@ class DatabaseEntityQuery {
|
|||||||
|
|
||||||
if ($this->logVerbose) {
|
if ($this->logVerbose) {
|
||||||
$params = [];
|
$params = [];
|
||||||
$query = $this->selectQuery->build($params);
|
$query = $this->build($params);
|
||||||
$this->logger->debug("QUERY: $query\nARGS: " . print_r($params, true));
|
$this->logger->debug("QUERY: $query\nARGS: " . print_r($params, true));
|
||||||
}
|
}
|
||||||
|
|
||||||
$res = $this->selectQuery->execute();
|
$res = parent::execute();
|
||||||
if ($res === null || $res === false) {
|
if ($res === null || $res === false) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -167,13 +137,4 @@ class DatabaseEntityQuery {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function addJoin(Join $join): DatabaseEntityQuery {
|
|
||||||
$this->selectQuery->addJoin($join);
|
|
||||||
return $this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getQuery(): Select {
|
|
||||||
return $this->selectQuery;
|
|
||||||
}
|
|
||||||
}
|
}
|
2
cli.php
2
cli.php
@ -616,7 +616,7 @@ function onImpersonate($argv) {
|
|||||||
if (!is_numeric($userId)) {
|
if (!is_numeric($userId)) {
|
||||||
$res = $sql->select("id")
|
$res = $sql->select("id")
|
||||||
->from("User")
|
->from("User")
|
||||||
->where(new Compare("name", $userId))
|
->whereEq("name", $userId)
|
||||||
->execute();
|
->execute();
|
||||||
if ($res === false) {
|
if ($res === false) {
|
||||||
_exit("SQL error: " . $sql->getLastError());
|
_exit("SQL error: " . $sql->getLastError());
|
||||||
|
Loading…
Reference in New Issue
Block a user