diff --git a/.gitignore b/.gitignore index 5980853..419237a 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ /composer.lock /.phpunit.result.cache /nbproject/private/ +/*.log diff --git a/src/Connection/Connection.php b/src/Connection/Connection.php index 03f792c..93bf6fb 100644 --- a/src/Connection/Connection.php +++ b/src/Connection/Connection.php @@ -7,7 +7,7 @@ * @author Muhammet ŞAFAK * @copyright Copyright © 2022 Muhammet ŞAFAK * @license ./LICENSE MIT - * @version 1.1.2 + * @version 1.1.3 * @link https://www.muhammetsafak.com.tr */ diff --git a/src/Connection/ConnectionInterface.php b/src/Connection/ConnectionInterface.php index 8217c79..b1b1913 100644 --- a/src/Connection/ConnectionInterface.php +++ b/src/Connection/ConnectionInterface.php @@ -7,7 +7,7 @@ * @author Muhammet ŞAFAK * @copyright Copyright © 2022 Muhammet ŞAFAK * @license ./LICENSE MIT - * @version 1.1.2 + * @version 1.1.3 * @link https://www.muhammetsafak.com.tr */ diff --git a/src/DB.php b/src/DB.php index f1576cf..87347fb 100644 --- a/src/DB.php +++ b/src/DB.php @@ -7,7 +7,7 @@ * @author Muhammet ŞAFAK * @copyright Copyright © 2022 Muhammet ŞAFAK * @license ./LICENSE MIT - * @version 1.1.2 + * @version 1.1.3 * @link https://www.muhammetsafak.com.tr */ @@ -197,7 +197,7 @@ public function create(array $fields) * @param array $optional * @return array|Entity[]|object[]|string[] */ - public function read(array $selector = [], array $conditions = [], array $parameters = [], array $optional = []) + public function read(array $selector = [], array $conditions = [], array $parameters = [], array $optional = []): array { $query = $this->getQueryBuilder()->buildQuery([ 'table' => $this->getSchema(), diff --git a/src/DataMapper/DataMapper.php b/src/DataMapper/DataMapper.php index a27ac1e..1eb1d1d 100644 --- a/src/DataMapper/DataMapper.php +++ b/src/DataMapper/DataMapper.php @@ -7,7 +7,7 @@ * @author Muhammet ŞAFAK * @copyright Copyright © 2022 Muhammet ŞAFAK * @license ./LICENSE MIT - * @version 1.1.2 + * @version 1.1.3 * @link https://www.muhammetsafak.com.tr */ @@ -219,9 +219,10 @@ public function execute(): bool }catch (\PDOException $e) { $this->transactionFailed(); } - return $res; + return $res ?? false; } + /** * @inheritDoc */ diff --git a/src/DataMapper/DataMapperFactory.php b/src/DataMapper/DataMapperFactory.php index 07b310b..71f9265 100644 --- a/src/DataMapper/DataMapperFactory.php +++ b/src/DataMapper/DataMapperFactory.php @@ -7,7 +7,7 @@ * @author Muhammet ŞAFAK * @copyright Copyright © 2022 Muhammet ŞAFAK * @license ./LICENSE MIT - * @version 1.1.2 + * @version 1.1.3 * @link https://www.muhammetsafak.com.tr */ diff --git a/src/DataMapper/DataMapperInterface.php b/src/DataMapper/DataMapperInterface.php index 7e4ca86..2974ed5 100644 --- a/src/DataMapper/DataMapperInterface.php +++ b/src/DataMapper/DataMapperInterface.php @@ -7,7 +7,7 @@ * @author Muhammet ŞAFAK * @copyright Copyright © 2022 Muhammet ŞAFAK * @license ./LICENSE MIT - * @version 1.1.2 + * @version 1.1.3 * @link https://www.muhammetsafak.com.tr */ diff --git a/src/Entity.php b/src/Entity.php index fd85251..19a5bd0 100644 --- a/src/Entity.php +++ b/src/Entity.php @@ -7,7 +7,7 @@ * @author Muhammet ŞAFAK * @copyright Copyright © 2022 Muhammet ŞAFAK * @license ./LICENSE MIT - * @version 1.1.2 + * @version 1.1.3 * @link https://www.muhammetsafak.com.tr */ diff --git a/src/Exceptions/DataMapperException.php b/src/Exceptions/DataMapperException.php index 2a3444f..61c5f72 100644 --- a/src/Exceptions/DataMapperException.php +++ b/src/Exceptions/DataMapperException.php @@ -7,7 +7,7 @@ * @author Muhammet ŞAFAK * @copyright Copyright © 2022 Muhammet ŞAFAK * @license ./LICENSE MIT - * @version 1.1.2 + * @version 1.1.3 * @link https://www.muhammetsafak.com.tr */ diff --git a/src/Exceptions/DataMapperInvalidArgumentException.php b/src/Exceptions/DataMapperInvalidArgumentException.php index c2146c8..02163d9 100644 --- a/src/Exceptions/DataMapperInvalidArgumentException.php +++ b/src/Exceptions/DataMapperInvalidArgumentException.php @@ -7,7 +7,7 @@ * @author Muhammet ŞAFAK * @copyright Copyright © 2022 Muhammet ŞAFAK * @license ./LICENSE MIT - * @version 1.1.2 + * @version 1.1.3 * @link https://www.muhammetsafak.com.tr */ diff --git a/src/Exceptions/DatabaseConnectionException.php b/src/Exceptions/DatabaseConnectionException.php index b5172da..6399b8d 100644 --- a/src/Exceptions/DatabaseConnectionException.php +++ b/src/Exceptions/DatabaseConnectionException.php @@ -7,7 +7,7 @@ * @author Muhammet ŞAFAK * @copyright Copyright © 2022 Muhammet ŞAFAK * @license ./LICENSE MIT - * @version 1.1.2 + * @version 1.1.3 * @link https://www.muhammetsafak.com.tr */ diff --git a/src/Exceptions/DatabaseException.php b/src/Exceptions/DatabaseException.php index 0cfb228..0b9b113 100644 --- a/src/Exceptions/DatabaseException.php +++ b/src/Exceptions/DatabaseException.php @@ -7,7 +7,7 @@ * @author Muhammet ŞAFAK * @copyright Copyright © 2022 Muhammet ŞAFAK * @license ./LICENSE MIT - * @version 1.1.2 + * @version 1.1.3 * @link https://www.muhammetsafak.com.tr */ diff --git a/src/Exceptions/DatabaseInvalidArgumentException.php b/src/Exceptions/DatabaseInvalidArgumentException.php index b10ba31..96fd1f1 100644 --- a/src/Exceptions/DatabaseInvalidArgumentException.php +++ b/src/Exceptions/DatabaseInvalidArgumentException.php @@ -7,7 +7,7 @@ * @author Muhammet ŞAFAK * @copyright Copyright © 2022 Muhammet ŞAFAK * @license ./LICENSE MIT - * @version 1.1.2 + * @version 1.1.3 * @link https://www.muhammetsafak.com.tr */ diff --git a/src/Exceptions/ModelCallbacksException.php b/src/Exceptions/ModelCallbacksException.php index 6803c87..42c9205 100644 --- a/src/Exceptions/ModelCallbacksException.php +++ b/src/Exceptions/ModelCallbacksException.php @@ -7,7 +7,7 @@ * @author Muhammet ŞAFAK * @copyright Copyright © 2022 Muhammet ŞAFAK * @license ./LICENSE MIT - * @version 1.1.2 + * @version 1.1.3 * @link https://www.muhammetsafak.com.tr */ diff --git a/src/Exceptions/ModelException.php b/src/Exceptions/ModelException.php index a775877..f483dfc 100644 --- a/src/Exceptions/ModelException.php +++ b/src/Exceptions/ModelException.php @@ -7,7 +7,7 @@ * @author Muhammet ŞAFAK * @copyright Copyright © 2022 Muhammet ŞAFAK * @license ./LICENSE MIT - * @version 1.1.2 + * @version 1.1.3 * @link https://www.muhammetsafak.com.tr */ diff --git a/src/Exceptions/ModelPermissionException.php b/src/Exceptions/ModelPermissionException.php index c35191a..c866cc6 100644 --- a/src/Exceptions/ModelPermissionException.php +++ b/src/Exceptions/ModelPermissionException.php @@ -7,7 +7,7 @@ * @author Muhammet ŞAFAK * @copyright Copyright © 2022 Muhammet ŞAFAK * @license ./LICENSE MIT - * @version 1.1.2 + * @version 1.1.3 * @link https://www.muhammetsafak.com.tr */ diff --git a/src/Exceptions/ModelRelationsException.php b/src/Exceptions/ModelRelationsException.php index 17087e0..3a0f1e4 100644 --- a/src/Exceptions/ModelRelationsException.php +++ b/src/Exceptions/ModelRelationsException.php @@ -7,7 +7,7 @@ * @author Muhammet ŞAFAK * @copyright Copyright © 2022 Muhammet ŞAFAK * @license ./LICENSE MIT - * @version 1.1.2 + * @version 1.1.3 * @link https://www.muhammetsafak.com.tr */ diff --git a/src/Exceptions/QueryBuilderException.php b/src/Exceptions/QueryBuilderException.php index 2f26e5b..bb4c0e3 100644 --- a/src/Exceptions/QueryBuilderException.php +++ b/src/Exceptions/QueryBuilderException.php @@ -7,7 +7,7 @@ * @author Muhammet ŞAFAK * @copyright Copyright © 2022 Muhammet ŞAFAK * @license ./LICENSE MIT - * @version 1.1.2 + * @version 1.1.3 * @link https://www.muhammetsafak.com.tr */ diff --git a/src/Exceptions/QueryBuilderInvalidArgumentException.php b/src/Exceptions/QueryBuilderInvalidArgumentException.php index c5aca40..abc31ed 100644 --- a/src/Exceptions/QueryBuilderInvalidArgumentException.php +++ b/src/Exceptions/QueryBuilderInvalidArgumentException.php @@ -7,7 +7,7 @@ * @author Muhammet ŞAFAK * @copyright Copyright © 2022 Muhammet ŞAFAK * @license ./LICENSE MIT - * @version 1.1.2 + * @version 1.1.3 * @link https://www.muhammetsafak.com.tr */ diff --git a/src/Helper.php b/src/Helper.php index ce01642..869322c 100644 --- a/src/Helper.php +++ b/src/Helper.php @@ -7,7 +7,7 @@ * @author Muhammet ŞAFAK * @copyright Copyright © 2022 Muhammet ŞAFAK * @license ./LICENSE MIT - * @version 1.1.2 + * @version 1.1.3 * @link https://www.muhammetsafak.com.tr */ diff --git a/src/Model.php b/src/Model.php index da84759..3704464 100644 --- a/src/Model.php +++ b/src/Model.php @@ -7,7 +7,7 @@ * @author Muhammet ŞAFAK * @copyright Copyright © 2022 Muhammet ŞAFAK * @license ./LICENSE MIT - * @version 1.1.2 + * @version 1.1.3 * @link https://www.muhammetsafak.com.tr */ @@ -199,6 +199,10 @@ class Model extends DB private Validation $_validation; + private bool $isOnlyDeleted = false; + + private ?string $useSoftDeletesField = null; + public function __construct() { if(empty($this->getProperty('table'))){ @@ -206,8 +210,12 @@ public function __construct() $modelClassSplit = \explode('\\', $modelClass); $this->table = \strtolower(\end($modelClassSplit)); } - if($this->getProperty('useSoftDeletes', true) !== FALSE && empty($this->getProperty('deletedField'))){ - throw new ModelException('There must be a delete column to use soft delete.'); + if($this->getProperty('useSoftDeletes', true) !== FALSE){ + $deletedField = $this->getProperty('deletedField'); + if(empty($deletedField)){ + throw new ModelException('There must be a delete column to use soft delete.'); + } + $this->useSoftDeletesField = $deletedField; } $this->_validation = new Validation(); $this->validationMsgMergeAndSet(); @@ -302,23 +310,38 @@ public final function update(array $fields) if(($data = $this->callbacksFunctionHandler($fields, 'beforeUpdate')) === FALSE){ return false; } + $updateField = $this->getProperty('updatedField'); if(!empty($this->getProperty('allowedFields', null))){ - $updateField = $this->getProperty('updatedField'); if(!empty($updateField) && !\in_array($updateField, $this->allowedFields)){ $this->allowedFields[] = $this->getProperty('updatedField'); } + } + if(!empty($updateField)){ $data[$updateField] = \date('c'); } - $query = $this->getQueryBuilder()->buildQuery([ - 'table' => $this->getSchema(), - 'fields' => $data, - 'type' => 'update', - 'primary_key' => $this->getSchemaID(), - ], false) - ->updateQuery(); + + $fields = $data; + $parameters = []; + if(!empty($this->getProperty('primaryKey')) && isset($fields[$this->getProperty('primaryKey')])){ + $primary_key = $this->getProperty('primaryKey'); + $this->getQueryBuilder()->where($primary_key, ':' . $primary_key); + $parameters[':' . $primary_key] = $fields[$primary_key]; + unset($fields[$primary_key]); + } + foreach ($fields as $key => $value) { + $parameters[':' . $key] = $value; + $fields[$key] = ':' . $key; + } + $query = $this->getQueryBuilder(); + + if(!empty($this->useSoftDeletesField)){ + $query->is($this->useSoftDeletesField, null); + } + $query = $query->updateQuery($fields); $this->getQueryBuilder()->reset(); - $res = $this->getDataMapper()->persist($query, $this->getDataMapper()->buildQueryParameters($this->getParameters(), $data)); + + $res = $this->getDataMapper()->persist($query, $this->getDataMapper()->buildQueryParameters($parameters, $this->getParameters())); if($res === FALSE || $this->getDataMapper()->numRows() < 1){ return false; } @@ -341,34 +364,27 @@ public final function insert(array $data) $allowedFields = $this->getProperty('allowedFields', null); $injectColumn = []; if(!empty($createdField)){ - if(!empty($allowedFields)){ - if(!\in_array($createdField, $this->allowedFields)){ - $this->allowedFields[] = $createdField; - } + if(!empty($allowedFields) && !\in_array($createdField, $this->allowedFields)){ + $this->allowedFields[] = $createdField; } $injectColumn[$createdField] = \date('c'); } - if(\count($data) !== \count($data, \COUNT_RECURSIVE)){ - $res = []; - foreach ($data as $row) { - $single = $this->singleInsertDataValid($row, $injectColumn); - if($single === FALSE){ - continue; - } - $res[] = $single; - } - $data = $res; - unset($res); - }else{ - $data = $this->singleInsertDataValid($data, $injectColumn); - if($data === FALSE){ - return false; - } + $data = $this->singleInsertDataValid($data, $injectColumn); + if($data === FALSE){ + return false; } - $query = $this->getQueryBuilder()->insertQuery($data); + + $fields = []; + $parameters = []; + foreach ($data as $key => $value) { + $parameters[':' . $key] = $value; + $fields[$key] = ':' . $key; + } + + $query = $this->getQueryBuilder()->insertQuery($fields); $this->getQueryBuilder()->reset(); - $res = $this->getDataMapper()->persist($query, $this->getDataMapper()->buildQueryParameters($this->getParameters())); + $res = $this->getDataMapper()->persist($query, $this->getDataMapper()->buildQueryParameters($parameters, $this->getParameters())); if($res === FALSE || $this->getDataMapper()->numRows() < 1){ return false; } @@ -385,47 +401,41 @@ public final function delete($id = null) throw new ModelPermissionException('"' . \get_called_class() . '" is not a deletable model.'); } - if($id !== null && !empty($this->getSchemaID())){ - $this->where($this->getSchemaID(), $id); + $query = $this->getQueryBuilder(); + + if(!empty($this->useSoftDeletesField)){ + $query->is($this->useSoftDeletesField, null); } - $res = clone $this; - $res->asAssoc() - ->get(); - $data = $res->results(); + + if($id !== null && !empty($this->getSchemaID())){ + $query = $query->where($this->getSchemaID(), $id); + } + $res = clone $query; + $resQuery = $res->readQuery(); + $res->reset(); + $this->getDataMapper()->asAssoc() + ->persist($resQuery, $this->getParameters(false)); + $data = $this->getDataMapper()->numRows() > 0 ? $this->getDataMapper()->results() : []; unset($res); if(empty($data) || ($data = $this->callbacksFunctionHandler($data, 'beforeDelete')) === FALSE){ return false; } - if(!empty($this->getProperty('allowedFields', null))){ - $deletedField = $this->getProperty('deletedField'); - if(!empty($deletedField) && !\in_array($deletedField, $this->allowedFields)){ - $this->allowedFields[] = $deletedField; + if(!empty($this->useSoftDeletesField)){ + if(!empty($this->allowedFields) && !\in_array($this->useSoftDeletesField, $this->allowedFields)){ + $this->allowedFields[] = $this->useSoftDeletesField; } - } - if($this->getProperty('useSoftDeletes', false) !== FALSE && !empty($this->getProperty('deletedField', false))){ - $fields = [ - $this->getProperty('deletedField') => \date('c') - ]; - $query = $this->getQueryBuilder()->buildQuery([ - 'table' => $this->getSchema(), - 'type' => 'update', - 'fields' => $fields, - ], false) - ->updateQuery(); + $query = $query->updateQuery([ + $this->useSoftDeletesField => ':' . $this->useSoftDeletesField, + ]); + $this->setParameter(':' . $this->useSoftDeletesField, \date('c')); }else{ - $fields = []; - $query = $this->getQueryBuilder() - ->buildQuery([ - 'table' => $this->getSchema(), - 'type' => 'delete' - ], false) - ->deleteQuery(); + $query = $query->deleteQuery(); } $this->getQueryBuilder()->reset(); - $res = $this->getDataMapper()->persist($query, $fields); + $res = $this->getDataMapper()->persist($query, $this->getParameters(true)); if($res === FALSE || $this->getDataMapper()->numRows() < 1){ return false; } @@ -524,6 +534,9 @@ public final function first() if($this->isReadable() === FALSE){ throw new ModelPermissionException('"' . \get_called_class() . '" is not a readable model.'); } + if(!empty($this->useSoftDeletesField) && $this->isOnlyDeleted === FALSE){ + $this->getQueryBuilder()->is($this->useSoftDeletesField, null); + } return parent::first(); } @@ -541,6 +554,9 @@ public final function find($id = null) $this->getQueryBuilder()->where($this->getSchemaID(), ':' . $this->getSchemaID(), '='); $this->setParameter(':'. $this->getSchemaID(), $id); } + if(!empty($this->useSoftDeletesField) && $this->isOnlyDeleted === FALSE){ + $this->getQueryBuilder()->is($this->useSoftDeletesField, null); + } $this->get(); return $this->row(); } @@ -555,6 +571,9 @@ public function findColumn(string $column) throw new ModelPermissionException('"' . \get_called_class() . '" is not a readable model.'); } $this->getQueryBuilder()->select($column); + if(!empty($this->useSoftDeletesField) && $this->isOnlyDeleted === FALSE){ + $this->getQueryBuilder()->is($this->useSoftDeletesField, null); + } $this->get(); if($this->getDataMapper()->numRows() < 1){ return false; @@ -571,6 +590,9 @@ public final function findAll(int $limit = 100, int $offset = 0): array if($this->isReadable() === FALSE){ throw new ModelPermissionException('"' . \get_called_class() . '" is not a readable model.'); } + if(!empty($this->useSoftDeletesField) && $this->isOnlyDeleted === FALSE){ + $this->getQueryBuilder()->is($this->useSoftDeletesField, null); + } return parent::findAll($limit, $offset); } @@ -582,6 +604,9 @@ public function all(): array if($this->isReadable() === FALSE){ throw new ModelPermissionException('"' . \get_called_class() . '" is not a readable model.'); } + if(!empty($this->useSoftDeletesField) && $this->isOnlyDeleted === FALSE){ + $this->getQueryBuilder()->is($this->useSoftDeletesField, null); + } $this->get(); return $this->rows(); } @@ -591,10 +616,10 @@ public function all(): array */ public function onlyDeleted(): self { - if(!empty($this->getProperty('useSoftDeletes')) && !empty($this->getProperty('deletedField'))){ - $this->getQueryBuilder()->isNot($this->getProperty('deletedField'), null); + if(!empty($this->useSoftDeletesField)){ + $this->getQueryBuilder()->isNot($this->useSoftDeletesField, null); } - + $this->isOnlyDeleted = true; return $this; } @@ -603,13 +628,31 @@ public function onlyDeleted(): self */ public function onlyUndeleted(): self { - if(!empty($this->getProperty('useSoftDeletes')) && !empty($this->getProperty('deletedField'))){ - $this->getQueryBuilder()->is($this->getProperty('deletedField'), null); + if(!empty($this->useSoftDeletesField)){ + $this->getQueryBuilder()->is($this->useSoftDeletesField, null); } - + $this->isOnlyDeleted = false; return $this; } + /** + * @inheritDoc + */ + public function get(): \PDOStatement + { + $this->isOnlyDeleted = false; + return parent::get(); + } + + /** + * @inheritDoc + */ + public function read(array $selector = [], array $conditions = [], array $parameters = [], array $optional = []): array + { + $this->isOnlyDeleted = false; + return parent::read($selector, $conditions, $parameters, $optional); + } + /** * @return bool */ @@ -618,9 +661,9 @@ public function purgeDeleted(): bool if($this->isDeletable() === FALSE){ return false; } - if(!empty($this->getProperty('useSoftDeletes')) && !empty($this->getProperty('deletedField'))){ + if(!empty($this->useSoftDeletesField)){ $query = $this->getQueryBuilder() - ->isNot($this->getProperty('deletedField'), null) + ->isNot($this->useSoftDeletesField, null) ->deleteQuery(); $this->getQueryBuilder()->reset(); diff --git a/src/QueryBuilder/Expressions/From.php b/src/QueryBuilder/Expressions/From.php index 05e317c..266632c 100644 --- a/src/QueryBuilder/Expressions/From.php +++ b/src/QueryBuilder/Expressions/From.php @@ -7,7 +7,7 @@ * @author Muhammet ŞAFAK * @copyright Copyright © 2022 Muhammet ŞAFAK * @license ./LICENSE MIT - * @version 1.1.2 + * @version 1.1.3 * @link https://www.muhammetsafak.com.tr */ diff --git a/src/QueryBuilder/Expressions/GroupBy.php b/src/QueryBuilder/Expressions/GroupBy.php index 54369e4..6bb7d7f 100644 --- a/src/QueryBuilder/Expressions/GroupBy.php +++ b/src/QueryBuilder/Expressions/GroupBy.php @@ -7,7 +7,7 @@ * @author Muhammet ŞAFAK * @copyright Copyright © 2022 Muhammet ŞAFAK * @license ./LICENSE MIT - * @version 1.1.2 + * @version 1.1.3 * @link https://www.muhammetsafak.com.tr */ diff --git a/src/QueryBuilder/Expressions/Join.php b/src/QueryBuilder/Expressions/Join.php index 52d0386..0aeff70 100644 --- a/src/QueryBuilder/Expressions/Join.php +++ b/src/QueryBuilder/Expressions/Join.php @@ -7,7 +7,7 @@ * @author Muhammet ŞAFAK * @copyright Copyright © 2022 Muhammet ŞAFAK * @license ./LICENSE MIT - * @version 1.1.2 + * @version 1.1.3 * @link https://www.muhammetsafak.com.tr */ diff --git a/src/QueryBuilder/Expressions/Limit.php b/src/QueryBuilder/Expressions/Limit.php index d0a1ac3..4789e91 100644 --- a/src/QueryBuilder/Expressions/Limit.php +++ b/src/QueryBuilder/Expressions/Limit.php @@ -7,7 +7,7 @@ * @author Muhammet ŞAFAK * @copyright Copyright © 2022 Muhammet ŞAFAK * @license ./LICENSE MIT - * @version 1.1.2 + * @version 1.1.3 * @link https://www.muhammetsafak.com.tr */ diff --git a/src/QueryBuilder/Expressions/OrderBy.php b/src/QueryBuilder/Expressions/OrderBy.php index 2a1060c..14707d5 100644 --- a/src/QueryBuilder/Expressions/OrderBy.php +++ b/src/QueryBuilder/Expressions/OrderBy.php @@ -7,7 +7,7 @@ * @author Muhammet ŞAFAK * @copyright Copyright © 2022 Muhammet ŞAFAK * @license ./LICENSE MIT - * @version 1.1.2 + * @version 1.1.3 * @link https://www.muhammetsafak.com.tr */ diff --git a/src/QueryBuilder/Expressions/Select.php b/src/QueryBuilder/Expressions/Select.php index d207d14..fd174ed 100644 --- a/src/QueryBuilder/Expressions/Select.php +++ b/src/QueryBuilder/Expressions/Select.php @@ -7,7 +7,7 @@ * @author Muhammet ŞAFAK * @copyright Copyright © 2022 Muhammet ŞAFAK * @license ./LICENSE MIT - * @version 1.1.2 + * @version 1.1.3 * @link https://www.muhammetsafak.com.tr */ diff --git a/src/QueryBuilder/Expressions/WhereAndHaving.php b/src/QueryBuilder/Expressions/WhereAndHaving.php index 61743c4..1779839 100644 --- a/src/QueryBuilder/Expressions/WhereAndHaving.php +++ b/src/QueryBuilder/Expressions/WhereAndHaving.php @@ -7,7 +7,7 @@ * @author Muhammet ŞAFAK * @copyright Copyright © 2022 Muhammet ŞAFAK * @license ./LICENSE MIT - * @version 1.1.2 + * @version 1.1.3 * @link https://www.muhammetsafak.com.tr */ diff --git a/src/QueryBuilder/QueryBuilder.php b/src/QueryBuilder/QueryBuilder.php index b71ff1f..baca5e0 100644 --- a/src/QueryBuilder/QueryBuilder.php +++ b/src/QueryBuilder/QueryBuilder.php @@ -7,7 +7,7 @@ * @author Muhammet ŞAFAK * @copyright Copyright © 2022 Muhammet ŞAFAK * @license ./LICENSE MIT - * @version 1.1.2 + * @version 1.1.3 * @link https://www.muhammetsafak.com.tr */ diff --git a/src/QueryBuilder/QueryBuilderFactory.php b/src/QueryBuilder/QueryBuilderFactory.php index 6616727..c9e7a6c 100644 --- a/src/QueryBuilder/QueryBuilderFactory.php +++ b/src/QueryBuilder/QueryBuilderFactory.php @@ -7,7 +7,7 @@ * @author Muhammet ŞAFAK * @copyright Copyright © 2022 Muhammet ŞAFAK * @license ./LICENSE MIT - * @version 1.1.2 + * @version 1.1.3 * @link https://www.muhammetsafak.com.tr */ diff --git a/src/QueryBuilder/QueryBuilderInterface.php b/src/QueryBuilder/QueryBuilderInterface.php index c26fa6e..27dcbc3 100644 --- a/src/QueryBuilder/QueryBuilderInterface.php +++ b/src/QueryBuilder/QueryBuilderInterface.php @@ -7,7 +7,7 @@ * @author Muhammet ŞAFAK * @copyright Copyright © 2022 Muhammet ŞAFAK * @license ./LICENSE MIT - * @version 1.1.2 + * @version 1.1.3 * @link https://www.muhammetsafak.com.tr */