diff --git a/src/DbCoResult.php b/src/DbCoResult.php index 3e7374d..012e49c 100644 --- a/src/DbCoResult.php +++ b/src/DbCoResult.php @@ -8,30 +8,32 @@ use Swoft\Db\Helper\EntityHelper; /** - * The cor result of db + * Class DbCoResult + * + * @package Swoft\Db */ class DbCoResult extends AbstractCoResult { /** - * 是否是插入操作 + * Is insert operation * * @var bool */ - private $isInsert = false; + private $insert = false; /** - * 是否是更新或删除操作 + * Is update or delete operation * * @var bool */ - private $isUpdateOrDelete = false; + private $updateOrDelete = false; /** - * 是否查找一条数据 + * Is find one entity operation * * @var bool */ - private $isFindOne = false; + private $findOne = false; /** * @var string @@ -40,25 +42,24 @@ class DbCoResult extends AbstractCoResult /** * @param array ...$params - * * @return mixed */ public function getResult(...$params) { - $className = ""; - if (!empty($params)) { + $className = ''; + if (! empty($params)) { list($className) = $params; } $result = $this->recv(true); $result = $this->transferResult($result); - // 日志记录处理 + // Logger list(, $sqlId) = explode('.', $this->profileKey); App::debug("SQL语句执行结果(defer) sqlId=$sqlId result=" . json_encode($result)); - // fill data to entity - if (is_array($result) && !empty($className)) { + // Fill data to Entity + if (\is_array($result) && ! empty($className)) { $result = EntityHelper::resultToEntity($result, $className); } @@ -67,20 +68,17 @@ public function getResult(...$params) /** * @param bool $defer - * * @return mixed */ public function recv($defer = false) { $result = $this->client->recv(); - // 重置延迟设置 - if ($defer) { - $this->client->setDefer(false); - } + // Reset defer status + $defer && $this->client->setDefer(false); $isSqlSession = DbHelper::isContextTransaction($this->poolId); - if ($this->connectPool !== null && $isSqlSession == false) { + if ($this->connectPool !== null && ! $isSqlSession) { $this->connectPool->release($this->client); } @@ -88,27 +86,27 @@ public function recv($defer = false) } /** - * @param bool $isInsert + * @param bool $insert */ - public function setIsInsert(bool $isInsert) + public function setInsert(bool $insert) { - $this->isInsert = $isInsert; + $this->insert = $insert; } /** - * @param bool $isUpdateOrDelete + * @param bool $updateOrDelete */ - public function setIsUpdateOrDelete(bool $isUpdateOrDelete) + public function setUpdateOrDelete(bool $updateOrDelete) { - $this->isUpdateOrDelete = $isUpdateOrDelete; + $this->updateOrDelete = $updateOrDelete; } /** - * @param bool $isFindOne + * @param bool $findOne */ - public function setIsFindOne(bool $isFindOne) + public function setFindOne(bool $findOne) { - $this->isFindOne = $isFindOne; + $this->findOne = $findOne; } /** @@ -123,16 +121,15 @@ public function setPoolId(string $poolId) * 转换结果 * * @param mixed $result 查询结果 - * * @return mixed */ private function transferResult($result) { - if ($this->isInsert && $result !== false) { + if ($this->insert && $result !== false) { $result = $this->client->getInsertId(); - } elseif ($this->isUpdateOrDelete && $result !== false) { + } elseif ($this->updateOrDelete && $result !== false) { $result = $this->client->getAffectedRows(); - } elseif ($this->isFindOne && $result != false) { + } elseif ($this->findOne && $result !== false) { $result = $result[0] ?? []; } return $result; diff --git a/src/DbDataResult.php b/src/DbDataResult.php index b18313a..078e7c2 100644 --- a/src/DbDataResult.php +++ b/src/DbDataResult.php @@ -6,25 +6,26 @@ use Swoft\Db\Helper\EntityHelper; /** - * The sync result of db + * Class DbDataResult + * + * @package Swoft\Db */ class DbDataResult extends AbstractDataResult { /** * @param array ...$params - * * @return mixed */ public function getResult(...$params) { - $className = ""; + $className = ''; $result = $this->data; - if (!empty($params)) { + if (! empty($params)) { list($className) = $params; } - // fill data to entity - if (is_array($result) && !empty($className)) { + // Fill data to Entity + if (\is_array($result) && ! empty($className)) { $result = EntityHelper::resultToEntity($result, $className); } diff --git a/src/Driver/Mysql/QueryBuilder.php b/src/Driver/Mysql/QueryBuilder.php index 9c8fb59..1e299e4 100644 --- a/src/Driver/Mysql/QueryBuilder.php +++ b/src/Driver/Mysql/QueryBuilder.php @@ -11,34 +11,27 @@ use Swoft\Helper\JsonHelper; /** - * Mysql查询器 - * - * @uses QueryBuilder - * @version 2017年09月01日 - * @author stelin - * @copyright Copyright 2010-2016 swoft software - * @license PHP Version 7.x {@link http://www.php.net/license/3_0.txt} + * Mysql query builder */ class QueryBuilder extends \Swoft\Db\QueryBuilder { /** * @var string */ - private $profilePrefix = "mysql"; + private $profilePrefix = 'mysql'; /** * @return ResultInterface */ public function execute() { - if(App::isCoContext()){ + if (App::isCoContext()) { return $this->getCorResult(); } return $this->getSyncResult(); } /** - * * @return DbDataResult */ private function getSyncResult() @@ -52,15 +45,15 @@ private function getSyncResult() $result = $this->connect->execute($this->parameters); App::profileEnd($profileKey); - App::debug(sprintf("sql execute sqlId=%s, result=%s, sql=%s", $sqlId, JsonHelper::encode($result, JSON_UNESCAPED_UNICODE), $sql)); + App::debug(sprintf('sql execute sqlId=%s, result=%s, sql=%s', $sqlId, JsonHelper::encode($result, JSON_UNESCAPED_UNICODE), $sql)); $result = $this->transferResult($result); - if (is_array($result) && !empty($className)) { + if (is_array($result) && ! empty($className)) { $result = EntityHelper::resultToEntity($result, $className); } - if (!DbHelper::isContextTransaction($this->poolId)) { + if (! DbHelper::isContextTransaction($this->poolId)) { $this->pool->release($this->connect); } @@ -81,28 +74,27 @@ private function getCorResult() $this->connect->prepare($sql); $result = $this->connect->execute($this->parameters); - App::debug(sprintf("sql execute sqlId=%s, sql=%s", $sqlId, $sql)); + App::debug(sprintf('sql execute sqlId=%s, sql=%s', $sqlId, $sql)); $isUpdateOrDelete = $this->isDelete() || $this->isUpdate(); - $isFindOne = $this->isSelect() && isset($this->limit['limit']) && $this->limit['limit'] == 1; - $corResult = new DbCoResult($this->connect, $profileKey, $this->pool); + $isFindOne = $this->isSelect() && isset($this->limit['limit']) && $this->limit['limit'] === 1; + $corResult = new DbCoResult($this->connect, $profileKey, $this->pool); // 结果转换参数 $corResult->setPoolId($this->poolId); - $corResult->setIsInsert($this->isInsert()); - $corResult->setIsUpdateOrDelete($isUpdateOrDelete); - $corResult->setIsFindOne($isFindOne); + $corResult->setInsert($this->isInsert()); + $corResult->setUpdateOrDelete($isUpdateOrDelete); + $corResult->setFindOne($isFindOne); return $corResult; } /** * @param string $sql - * * @return array */ private function getSqlIdAndProfileKey(string $sql) { - $sqlId = md5($sql); + $sqlId = md5($sql); $profileKey = sprintf('%s.%s', $sqlId, $this->profilePrefix); return [$sqlId, $profileKey]; diff --git a/src/Entity/Stub/Model.stub b/src/Entity/Stub/Model.stub index 08e3360..6c2cabf 100644 --- a/src/Entity/Stub/Model.stub +++ b/src/Entity/Stub/Model.stub @@ -10,9 +10,6 @@ namespace App\Models\Entity; * @Table(name="{{entity}}") * @uses {{entityClass}} * @version {{entityDate}} - * @author swoft - * @copyright Copyright 2010-2016 Swoft software - * @license PHP Version 7.x {@link http://www.php.net/license/3_0.txt} */ class {{entityClass}} extends {{extends}} {{{property}} diff --git a/src/EntityManager.php b/src/EntityManager.php index f99708d..ea30b63 100644 --- a/src/EntityManager.php +++ b/src/EntityManager.php @@ -13,7 +13,9 @@ use Swoft\Pool\ConnectPool; /** - * The entity manager of db + * Class EntityManager + * + * @package Swoft\Db */ class EntityManager implements EntityManagerInterface { @@ -23,21 +25,21 @@ class EntityManager implements EntityManagerInterface const CONTEXT_CONNECTS = 'contextConnects'; /** - * 数据库连接 + * Db connection * * @var \Swoft\Pool\AbstractConnect */ private $connect; /** - * 连接池 + * Connection pool * * @var ConnectPool */ private $pool = null; /** - * 当前EM是否关闭 + * Is this EntityManager closed ? * * @var bool */ @@ -56,17 +58,15 @@ class EntityManager implements EntityManagerInterface */ private function __construct(ConnectPool $pool, string $poolId) { - // 初始化连接信息 - $this->pool = $pool; - $this->poolId = $poolId; + $this->pool = $pool; + $this->poolId = $poolId; $this->connect = $pool->getConnect(); } /** - * 实例化一个实体管理器 + * Create a EntityManager * * @param string $poolId - * * @return EntityManager */ public static function create(string $poolId = Pool::MASTER): EntityManager @@ -77,10 +77,9 @@ public static function create(string $poolId = Pool::MASTER): EntityManager } /** - * 创建一个查询器 - * - * @param string $sql sql语句,默认为空 + * Create a Query Builder * + * @param string $sql * @return QueryBuilder * @throws \Swoft\Db\Exception\DbException */ @@ -93,11 +92,10 @@ public function createQuery(string $sql = ''): QueryBuilder } /** - * 创建一个查询器用于ActiveRecord操作 - * - * @param string $className 实体类名称 - * @param string $poolId 是否主节点,默认从节点 + * Create a QueryBuild for ActiveRecord * + * @param string $className Entity class name + * @param string $poolId Pool id, master node will be used as defaults * @return QueryBuilder */ public static function getQuery(string $className, $poolId): QueryBuilder @@ -105,12 +103,11 @@ public static function getQuery(string $className, $poolId): QueryBuilder $connect = self::getConnect($poolId); - // 驱动查询器 - $entities = EntityCollector::getCollector(); - $tableName = $entities[$className]['table']['name']; + $entities = EntityCollector::getCollector(); + $tableName = $entities[$className]['table']['name']; $queryClassName = self::getQueryClassName($connect); - // 获取连接 + // Get connection pool $pool = self::getPool($poolId); /* @var QueryBuilder $query */ @@ -121,37 +118,38 @@ public static function getQuery(string $className, $poolId): QueryBuilder } /** - * @param string $poolId + * Get a connection * + * @param string $poolId * @return \Swoft\Pool\ConnectInterface */ private static function getConnect(string $poolId): ConnectInterface { - $cid = Coroutine::id(); + $cid = Coroutine::id(); $contextTransactionKey = DbHelper::getContextTransactionKey((int)$cid, $poolId); - $connectKey = DbHelper::getContextConnectKey((int)$cid, $poolId); + $connectKey = DbHelper::getContextConnectKey((int)$cid, $poolId); - $contextTransaction = RequestContext::getContextDataByKey($contextTransactionKey, new \SplStack()); - $contextConnects = RequestContext::getContextDataByKey(self::CONTEXT_CONNECTS, []); - $contextConnect = $contextConnects[$connectKey]?? new \SplStack(); - $isContextTransaction = $contextTransaction instanceof \SplStack && !$contextTransaction->isEmpty(); - $isContextConnect = $contextConnect instanceof \SplStack && !$contextConnect->isEmpty(); + $contextTransaction = RequestContext::getContextDataByKey($contextTransactionKey, new \SplStack()); + $contextConnects = RequestContext::getContextDataByKey(self::CONTEXT_CONNECTS, []); + $contextConnect = $contextConnects[$connectKey] ?? new \SplStack(); + $isContextTransaction = $contextTransaction instanceof \SplStack && ! $contextTransaction->isEmpty(); + $isContextConnect = $contextConnect instanceof \SplStack && ! $contextConnect->isEmpty(); if ($isContextTransaction && $isContextConnect) { return $contextConnect->offsetGet(0); } - // 获取连接 - $pool = self::getPool($poolId); + // Get a connection from pool + $pool = self::getPool($poolId); $connect = $pool->getConnect(); return $connect; } /** - * insert实体数据 - * - * @param object $entity 实体 + * Save Entity * + * @param object $entity * @return ResultInterface + * @throws \Swoft\Db\Exception\DbException */ public function save($entity) { @@ -162,10 +160,9 @@ public function save($entity) } /** - * 按实体信息删除数据 - * - * @param object $entity 实体 + * Delete Entity * + * @param object $entity * @return ResultInterface */ public function delete($entity) @@ -177,11 +174,10 @@ public function delete($entity) } /** - * 根据ID删除数据 - * - * @param string $className 实体类名 - * @param mixed $id 删除ID + * Delete Entity by ID * + * @param string $className Entity class nane + * @param mixed $id * @return ResultInterface */ public function deleteById($className, $id) @@ -193,11 +189,10 @@ public function deleteById($className, $id) } /** - * 根据ID删除数据 - * - * @param string $className 实体类名 - * @param array $ids ID集合 + * Delete Entities by Ids * + * @param string $className Entity class name + * @param array $ids ID collection * @return ResultInterface */ public function deleteByIds($className, array $ids) @@ -209,10 +204,9 @@ public function deleteByIds($className, array $ids) } /** - * 按实体信息查找 - * - * @param object $entity 实体实例 + * Find by Entity * + * @param object $entity * @return ResultInterface */ public function find($entity): ResultInterface @@ -224,11 +218,10 @@ public function find($entity): ResultInterface } /** - * 根据ID查找 - * - * @param string $className 实体类名 - * @param mixed $id ID + * Find Entity by ID * + * @param string $className Entity class name + * @param mixed $id * @return ResultInterface */ public function findById($className, $id): ResultInterface @@ -240,11 +233,10 @@ public function findById($className, $id): ResultInterface } /** - * 根据ids查找 + * Find Entites by IDs * - * @param string $className 类名 + * @param string $className transaction * @param array $ids - * * @return ResultInterface */ public function findByIds($className, array $ids): ResultInterface @@ -256,7 +248,7 @@ public function findByIds($className, array $ids): ResultInterface } /** - * 开始事务 + * Begin transaction * * @throws \Swoft\Db\Exception\DbException */ @@ -264,11 +256,11 @@ public function beginTransaction() { $this->checkStatus(); $this->connect->beginTransaction(); - $this->beginContextTransaction(); + $this->beginTransactionContext(); } /** - * 回滚事务 + * Rollback transaction * * @throws \Swoft\Db\Exception\DbException */ @@ -276,11 +268,11 @@ public function rollback() { $this->checkStatus(); $this->connect->rollback(); - $this->closetContextTransaction(); + $this->closetTransactionContext(); } /** - * 提交事务 + * Commit transaction * * @throws \Swoft\Db\Exception\DbException */ @@ -288,11 +280,11 @@ public function commit() { $this->checkStatus(); $this->connect->commit(); - $this->closetContextTransaction(); + $this->closetTransactionContext(); } /** - * 关闭当前实体管理器 + * Close current EntityManager, and release the connection */ public function close() { @@ -301,27 +293,26 @@ public function close() } /** - * 检查当前实体管理器状态是否正取 + * Check the EntityManager status * * @throws DbException */ private function checkStatus() { if ($this->isClose) { - throw new DbException('entity manager已经关闭,不能再操作'); + throw new DbException('EntityManager was closed, no operation anymore'); } } /** - * 获取连接池 + * Get connetion pool by pool ID * * @param string $poolId - * * @return ConnectPool */ private static function getPool(string $poolId): ConnectPool { - if($poolId == Pool::SLAVE && self::hasSalvePool() == false){ + if ($poolId === Pool::SLAVE && self::hasSalvePool() === false) { $poolId = Pool::MASTER; } @@ -336,8 +327,8 @@ private static function getPool(string $poolId): ConnectPool private static function hasSalvePool() { $properties = App::getProperties(); - $hasConfig = isset($properties['db']['slave']['uri']) && !empty($properties['db']['slave']['uri']); - $hasEnv = !empty(env('DB_SLAVE_URI')); + $hasConfig = isset($properties['db']['slave']['uri']) && ! empty($properties['db']['slave']['uri']); + $hasEnv = ! empty(env('DB_SLAVE_URI')); if ($hasConfig || $hasEnv) { return true; @@ -347,32 +338,30 @@ private static function hasSalvePool() } /** - * 获取执行器 + * Get an Executor * * @return Executor * @throws \Swoft\Db\Exception\DbException */ private function getExecutor(): Executor { - // 初始化实体执行器 $query = $this->createQuery(); return new Executor($query, $this->poolId); } /** - * Begin context transaction + * Begin transaction context */ - private function beginContextTransaction() + private function beginTransactionContext() { - - $cid = Coroutine::id(); + $cid = Coroutine::id(); $contextTransactionKey = DbHelper::getContextTransactionKey((int)$cid, $this->poolId); - $connectKey = DbHelper::getContextConnectKey((int)$cid, $this->poolId); + $connectKey = DbHelper::getContextConnectKey((int)$cid, $this->poolId); $contextTransaction = RequestContext::getContextDataByKey($contextTransactionKey, new \SplStack()); - $contextConnects = RequestContext::getContextDataByKey(self::CONTEXT_CONNECTS, []); - $contextConnect = $contextConnects[$connectKey]?? new \SplStack(); + $contextConnects = RequestContext::getContextDataByKey(self::CONTEXT_CONNECTS, []); + $contextConnect = $contextConnects[$connectKey] ?? new \SplStack(); if ($contextTransaction instanceof \SplStack) { $contextTransaction->push(true); @@ -386,18 +375,17 @@ private function beginContextTransaction() } /** - * Close context transaction + * Close transaction context */ - private function closetContextTransaction() + private function closetTransactionContext() { - - $cid = Coroutine::id(); + $cid = Coroutine::id(); $contextTransactionKey = DbHelper::getContextTransactionKey((int)$cid, $this->poolId); - $connectKey = DbHelper::getContextConnectKey((int)$cid, $this->poolId); + $connectKey = DbHelper::getContextConnectKey((int)$cid, $this->poolId); $contextTransaction = RequestContext::getContextDataByKey($contextTransactionKey, new \SplStack()); - $contextConnects = RequestContext::getContextDataByKey(self::CONTEXT_CONNECTS, []); - $contextConnect = $contextConnects[$connectKey]?? new \SplStack(); + $contextConnects = RequestContext::getContextDataByKey(self::CONTEXT_CONNECTS, []); + $contextConnect = $contextConnects[$connectKey] ?? new \SplStack(); if ($contextTransaction instanceof \SplStack) { $contextTransaction->pop(); @@ -413,19 +401,18 @@ private function closetContextTransaction() } /** - * Get the class of queryBuilder + * Get the class name of QueryBuilder * * @param ConnectInterface $connect - * * @return string */ private static function getQueryClassName(ConnectInterface $connect): string { - $connectClassName = get_class($connect); - $classNameTmp = str_replace('\\', '/', $connectClassName); - $namespaceDir = dirname($classNameTmp); - $namespace = str_replace('/', '\\', $namespaceDir); - $namespace = sprintf('%s\\QueryBuilder', $namespace); + $connectClassName = \get_class($connect); + $classNameTmp = str_replace('\\', '/', $connectClassName); + $namespaceDir = \dirname($classNameTmp); + $namespace = str_replace('/', '\\', $namespaceDir); + $namespace = sprintf('%s\\QueryBuilder', $namespace); return $namespace; } diff --git a/src/EntityManagerInterface.php b/src/EntityManagerInterface.php index 052e748..002d912 100644 --- a/src/EntityManagerInterface.php +++ b/src/EntityManagerInterface.php @@ -3,18 +3,14 @@ namespace Swoft\Db; /** - * 实体管理器接口 + * Interface EntityManagerInterface * - * @uses EntityManagerInterface - * @version 2017年09月01日 - * @author stelin - * @copyright Copyright 2010-2016 swoft software - * @license PHP Version 7.x {@link http://www.php.net/license/3_0.txt} + * @package Swoft\Db */ interface EntityManagerInterface { /** - * 实例化一个实体管理器 + * Create a EntityManager instance * * @param string $poolId * @return EntityManager @@ -23,25 +19,25 @@ public static function create(string $poolId): EntityManager; /** - * 回滚事务 + * Rollback transaction */ public function rollback(); /** - * 开始事务 + * Begin transaction */ public function beginTransaction(); /** - * 提交事务 + * Commit transaction */ public function commit(); /** - * 创建一个查询器 + * Create a Query Builder * - * @param string $sql sql语句,默认为空 + * @param string $sql * @return QueryBuilder */ public function createQuery(string $sql = ''): QueryBuilder; diff --git a/src/Event/Listeners/ResourceReleaseListener.php b/src/Event/Listeners/ResourceReleaseListener.php index d50ce06..e840f50 100644 --- a/src/Event/Listeners/ResourceReleaseListener.php +++ b/src/Event/Listeners/ResourceReleaseListener.php @@ -23,7 +23,7 @@ class ResourceReleaseListener implements EventHandlerInterface public function handle(EventInterface $event) { $contextConnects = RequestContext::getContextDataByKey(EntityManager::CONTEXT_CONNECTS, []); - foreach ($contextConnects as $key => $contextConnect) { + foreach ($contextConnects ?? [] as $key => $contextConnect) { if (!($contextConnect instanceof \SplStack) || $contextConnect->isEmpty()) { continue; } @@ -33,7 +33,7 @@ public function handle(EventInterface $event) /* @var \Swoft\Pool\PoolInterface $pool */ $pool = App::getPool($poolId); - foreach ($contextConnect as $connect) { + foreach ($contextConnect ?? [] as $connect) { $pool->release($connect); } } diff --git a/src/Helper/DbHelper.php b/src/Helper/DbHelper.php index e44dcb2..5a1b920 100644 --- a/src/Helper/DbHelper.php +++ b/src/Helper/DbHelper.php @@ -13,7 +13,6 @@ class DbHelper /** * @param int $cid * @param string $poolId - * * @return string */ public static function getContextTransactionKey(int $cid, string $poolId): string @@ -24,7 +23,6 @@ public static function getContextTransactionKey(int $cid, string $poolId): strin /** * @param int $cid * @param string $poolId - * * @return string */ public static function getContextConnectKey(int $cid, string $poolId): string @@ -34,14 +32,13 @@ public static function getContextConnectKey(int $cid, string $poolId): string /** * @param string $poolId - * * @return bool */ - public static function isContextTransaction(string $poolId) + public static function isContextTransaction(string $poolId): bool { - $cid = Coroutine::id(); - $contextTransactionKey = DbHelper::getContextTransactionKey((int)$cid, $poolId); - $contextTransaction = RequestContext::getContextDataByKey($contextTransactionKey, new \SplStack()); + $cid = Coroutine::id(); + $contextTransactionKey = self::getContextTransactionKey((int)$cid, $poolId); + $contextTransaction = RequestContext::getContextDataByKey($contextTransactionKey, new \SplStack()); if ($contextTransaction instanceof \SplStack && $contextTransaction->isEmpty()) { return false; diff --git a/src/Helper/EntityHelper.php b/src/Helper/EntityHelper.php index 7429865..b1dd45a 100644 --- a/src/Helper/EntityHelper.php +++ b/src/Helper/EntityHelper.php @@ -13,17 +13,16 @@ class EntityHelper /** * @param array $result * @param string $className - * * @return array */ - public static function resultToEntity(array $result, string $className) + public static function resultToEntity(array $result, string $className): array { - if (!isset($result[0])) { + if (! isset($result[0])) { return self::arrayToEntity($result, $className); } $entities = []; foreach ($result as $entityData) { - if (!is_array($entityData)) { + if (! \is_array($entityData)) { continue; } $entities[] = self::arrayToEntity($entityData, $className); @@ -35,27 +34,26 @@ public static function resultToEntity(array $result, string $className) /** * @param array $array * @param string $className - * * @return array */ - public static function arrayToEntity(array $array, string $className) + public static function arrayToEntity(array $array, string $className): array { $entities = EntityCollector::getCollector(); - if (!isset($className)) { + if (! isset($className)) { return $array; } - $attrs = []; + $attrs = []; $object = new $className(); foreach ($array as $col => $value) { - if (!isset($entities[$className]['column'][$col])) { + if (! isset($entities[$className]['column'][$col])) { continue; } - $field = $entities[$className]['column'][$col]; - $setterMethod = "set" . ucfirst($field); + $field = $entities[$className]['column'][$col]; + $setterMethod = 'set' . ucfirst($field); - $type = $entities[$className]['field'][$field]['type']; + $type = $entities[$className]['field'][$field]['type']; $value = self::trasferTypes($type, $value); if (method_exists($object, $setterMethod)) { @@ -73,18 +71,17 @@ public static function arrayToEntity(array $array, string $className) /** * @param $type * @param $value - * * @return bool|float|int|string */ public static function trasferTypes($type, $value) { - if ($type == Types::INT || $type == Types::NUMBER) { + if ($type === Types::INT || $type === Types::NUMBER) { $value = (int)$value; - } elseif ($type == Types::STRING) { + } elseif ($type === Types::STRING) { $value = (string)$value; - } elseif ($type == Types::BOOLEAN) { + } elseif ($type === Types::BOOLEAN) { $value = (bool)$value; - } elseif ($type == Types::FLOAT) { + } elseif ($type === Types::FLOAT) { $value = (float)$value; } diff --git a/src/Types.php b/src/Types.php index 3efc64d..66a837c 100644 --- a/src/Types.php +++ b/src/Types.php @@ -3,43 +3,19 @@ namespace Swoft\Db; /** - * 实体类型 - * - * @uses Types - * @version 2017年09月12日 - * @author stelin - * @copyright Copyright 2010-2016 swoft software - * @license PHP Version 7.x {@link http://www.php.net/license/3_0.txt} + * Entity types */ class Types { - /** - * 整数 - */ const INT = 'int'; - /** - * 非负整数 - */ const NUMBER = 'number'; - /** - * 字符串 - */ const STRING = 'string'; - /** - * 浮点型 - */ const FLOAT = 'float'; - /** - * 时间类型字符串 - */ const DATETIME = 'datetime'; - /** - * bool类型 - */ const BOOLEAN = 'boolean'; }