Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
35026bb223 | ||
|
|
e2727c34e8 | ||
|
|
e16700fe8d |
@@ -10,12 +10,12 @@ Stable version
|
||||
composer require rmphp/storage
|
||||
```
|
||||
```bash
|
||||
composer require rmphp/storage:"^10.0"
|
||||
composer require rmphp/storage:"^11.0"
|
||||
```
|
||||
|
||||
|
||||
Dev version contains the latest changes
|
||||
|
||||
```bash
|
||||
composer require rmphp/storage:"10.x-dev"
|
||||
composer require rmphp/storage:"11.x-dev"
|
||||
```
|
||||
|
||||
@@ -25,7 +25,7 @@ abstract class AbstractMysqlRepository extends AbstractRepository implements Mys
|
||||
|
||||
|
||||
/** @inheritDoc */
|
||||
public function createFromResult(string $class, bool|MysqlResultData $result, callable $function = null): mixed {
|
||||
public function createFromResult(string $class, ?MysqlResultData $result, callable $function = null): mixed {
|
||||
if($result instanceof MysqlResultData) {
|
||||
$val = (isset($function)) ? $function($result->fetchOne()) : $result->fetchOne();
|
||||
$out = $this->createFromData($class, $val);
|
||||
@@ -35,7 +35,7 @@ abstract class AbstractMysqlRepository extends AbstractRepository implements Mys
|
||||
|
||||
|
||||
/** @inheritDoc */
|
||||
public function createListFromResult(string $class, bool|MysqlResultData $result, callable $function = null): array {
|
||||
public function createListFromResult(string $class, ?MysqlResultData $result, callable $function = null): array {
|
||||
if($result instanceof MysqlResultData) {
|
||||
foreach($result->fetch() as $resultValue) {
|
||||
$val = (isset($function)) ? $function($resultValue) : $resultValue;
|
||||
|
||||
@@ -59,7 +59,7 @@ abstract class AbstractDataObject {
|
||||
// Если тип свойства класс (valueObject)
|
||||
elseif($property->hasType() && class_exists($property->getType()->getName())) {
|
||||
// значение объект
|
||||
if(is_object($value[$property->getName()])){
|
||||
if(isset($value[$property->getName()]) && is_object($value[$property->getName()])){
|
||||
$object->{$property->getName()} = $value[$property->getName()];
|
||||
$case[$property->getName()] = 'VO: Object';
|
||||
}
|
||||
|
||||
@@ -16,21 +16,19 @@ interface MysqlRepositoryInterface extends RepositoryInterface {
|
||||
|
||||
/**
|
||||
* @param string $class
|
||||
* @param bool|MysqlResultData $result
|
||||
* @param MysqlResultData|null $result
|
||||
* @param callable|null $function
|
||||
* @return mixed
|
||||
* @throws RepositoryException
|
||||
*/
|
||||
public function createFromResult(string $class, bool|MysqlResultData $result, callable $function = null): mixed;
|
||||
public function createFromResult(string $class, ?MysqlResultData $result, callable $function = null): mixed;
|
||||
|
||||
/**
|
||||
* @param string $class
|
||||
* @param bool|MysqlResultData $result
|
||||
* @param MysqlResultData|null $result
|
||||
* @param callable|null $function
|
||||
* @return array
|
||||
* @throws RepositoryException
|
||||
*/
|
||||
public function createListFromResult(string $class, bool|MysqlResultData $result, callable $function = null): array;
|
||||
public function createListFromResult(string $class, ?MysqlResultData $result, callable $function = null): array;
|
||||
|
||||
/**
|
||||
* @param int $id
|
||||
|
||||
@@ -115,7 +115,7 @@ class MysqlStorage implements MysqlStorageInterface {
|
||||
|
||||
|
||||
/** @inheritDoc */
|
||||
public function find(string $sql, int $ln=0, int $numPage=1, int $count=0): bool|MysqlResultData {
|
||||
public function find(string $sql, int $ln=0, int $numPage=1, int $count=0): ?MysqlResultData {
|
||||
|
||||
if ($ln > 1) {
|
||||
$cnts = (!empty($count)) ? $count : $this->query($sql)->num_rows;
|
||||
@@ -128,7 +128,7 @@ class MysqlStorage implements MysqlStorageInterface {
|
||||
}
|
||||
|
||||
$result = $this->query($sql.$limit);
|
||||
if (!$result || $result->num_rows == 0) return false;
|
||||
if (!$result || $result->num_rows == 0) return null;
|
||||
|
||||
$data = new MysqlResultData($result);
|
||||
$data->count = $cnts ?? 0;
|
||||
@@ -137,17 +137,17 @@ class MysqlStorage implements MysqlStorageInterface {
|
||||
}
|
||||
|
||||
/** @inheritDoc */
|
||||
public function findOne(string $sql) : bool|MysqlResultData {
|
||||
public function findOne(string $sql) : ?MysqlResultData {
|
||||
$result = $this->query($sql." limit 0, 1");
|
||||
if (!$result || $result->num_rows == 0) return false;
|
||||
if (!$result || $result->num_rows == 0) return null;
|
||||
return new MysqlResultData($result);
|
||||
}
|
||||
|
||||
/** @inheritDoc */
|
||||
public function findById(string $table, mixed $id, string $name = 'id') : bool|array {
|
||||
public function findById(string $table, mixed $id, string $name = 'id') : ?array {
|
||||
$id = (is_numeric($id)) ? (int) $id : $this->escapeStr($id);
|
||||
$result = $this->query("select * from ".$this->escapeStr($table)." where `$name`='$id' limit 0, 1");
|
||||
if (!$result || $result->num_rows == 0) return false;
|
||||
if (!$result || $result->num_rows == 0) return null;
|
||||
$data = new MysqlResultData($result);
|
||||
return $data->fetchOne();
|
||||
}
|
||||
|
||||
@@ -82,13 +82,13 @@ interface MysqlStorageInterface {
|
||||
* @param int $count
|
||||
* @return bool|MysqlResultData
|
||||
*/
|
||||
public function find(string $sql, int $ln = 0, int $numPage = 1, int $count=0) : bool|MysqlResultData;
|
||||
public function find(string $sql, int $ln = 0, int $numPage = 1, int $count=0) : ?MysqlResultData;
|
||||
|
||||
/**
|
||||
* @param string $sql
|
||||
* @return bool|array
|
||||
*/
|
||||
public function findOne(string $sql) : bool|MysqlResultData;
|
||||
public function findOne(string $sql) : ?MysqlResultData;
|
||||
|
||||
/**
|
||||
* @param string $table
|
||||
@@ -96,7 +96,7 @@ interface MysqlStorageInterface {
|
||||
* @param string $name
|
||||
* @return bool|array
|
||||
*/
|
||||
public function findById(string $table, mixed $id, string $name = 'id') : bool|array;
|
||||
public function findById(string $table, mixed $id, string $name = 'id') : ?array;
|
||||
|
||||
/**
|
||||
* Метод экранирования данных с учетом текущего подключения в т.ч для LIKE
|
||||
|
||||
Reference in New Issue
Block a user