- Timestamp:
- 09/25/08 17:19:29 (2 months ago)
- Location:
- lang/php/misc/Hermit/src/Hermit
- Files:
-
- 9 added
- 9 modified
-
HermitAutoloader.php (modified) (1 diff)
-
annote/HermitAnnote.php (modified) (1 diff)
-
annote/HermitAnnoteConst.php (modified) (2 diffs)
-
command/HermitSelectCommand.php (modified) (2 diffs)
-
command/HermitSqlCommandFactory.php (modified) (1 diff)
-
parameter/HermitSqlParameterMixed.php (modified) (2 diffs)
-
resultset/HermitDefaultResultSet.php (added)
-
resultset/HermitLstResultSet.php (added)
-
resultset/HermitProcedureResultSet.php (modified) (1 diff)
-
resultset/HermitResultSet.php (modified) (1 diff)
-
resultset/HermitResultSetFactory.php (added)
-
statement/HermitStatementBuilder.php (modified) (3 diffs)
-
valuetype (added)
-
valuetype/HermitArrayValueType.php (added)
-
valuetype/HermitNopValueType.php (added)
-
valuetype/HermitObjectValueType.php (added)
-
valuetype/HermitValueType.php (added)
-
valuetype/HermitValueTypeFactory.php (added)
Legend:
- Unmodified
- Added
- Removed
-
lang/php/misc/Hermit/src/Hermit/HermitAutoloader.php
r19775 r19902 16 16 '/resultset', 17 17 '/responder', 18 '/tx' 18 '/tx', 19 '/valuetype' 19 20 ); 20 21 private static $userClassPath = array(); -
lang/php/misc/Hermit/src/Hermit/annote/HermitAnnote.php
r19426 r19902 20 20 public abstract function getQuery(ReflectionMethod $method); 21 21 public abstract function getDelegate(ReflectionMethod $method); 22 public abstract function getValueType(ReflectionMethod $method); 22 23 public static final function create(ReflectionClass $reflector){ 23 24 return new HermitAnnoteConst($reflector); -
lang/php/misc/Hermit/src/Hermit/annote/HermitAnnoteConst.php
r19426 r19902 12 12 const PROCEDURE_SUFFIX = '_PROCEDURE'; 13 13 const DELEGATE_SUFFIX = '_DELEGATE'; 14 const VALUE_TYPE_SUFFIX = '_VALUE_TYPE'; 14 15 15 16 const UNDERSCORE = '_'; … … 119 120 return $this->reflector->getConstant($name . self::DELEGATE_SUFFIX); 120 121 } 122 public function getValueType(ReflectionMethod $method){ 123 $key = $method->getName() . self::VALUE_TYPE_SUFFIX; 124 if($this->reflector->hasConstant($key)){ 125 return $this->reflector->getConstant($key); 126 } 127 return null; 128 } 121 129 } 122 130 -
lang/php/misc/Hermit/src/Hermit/command/HermitSelectCommand.php
r19682 r19902 7 7 private $method; 8 8 private $sqlCreator; 9 public function __construct(ReflectionMethod $method, HermitSqlCreator $sqlCreator){ 9 private $type; 10 public function __construct(ReflectionMethod $method, HermitSqlCreator $sqlCreator, HermitValueType $type){ 10 11 $this->method = $method; 11 12 $this->sqlCreator = $sqlCreator; 13 $this->type = $type; 12 14 } 13 15 public function execute(PDO $pdo, array $parameters){ … … 15 17 $stmt = HermitStatementBuilder::prepare($pdo, $this->method, $sql); 16 18 $stmt->execute($parameters); 17 return HermitResultSet::create($stmt, $this->method); 19 $resultset = HermitResultSetFactory::create($this->method); 20 return $resultset->execute($stmt, $this->type); 18 21 } 19 22 } 23 -
lang/php/misc/Hermit/src/Hermit/command/HermitSqlCommandFactory.php
r19682 r19902 79 79 $this->appendSql($method, $creator); 80 80 } 81 return new HermitSelectCommand($method, $creator); 81 $valueType = HermitValueTypeFactory::create($this->annote->getValueType($method)); 82 return new HermitSelectCommand($method, $creator, $valueType); 82 83 } 83 84 protected function createSelectSqlCreator(ReflectionMethod $method, $dbName){ -
lang/php/misc/Hermit/src/Hermit/parameter/HermitSqlParameterMixed.php
r18954 r19902 5 5 */ 6 6 class HermitSqlParameterMixed extends HermitSqlParameter { 7 private $index = 0; 7 8 private $parameters = array(); 8 9 public function add(HermitSqlParameter $param){ … … 10 11 } 11 12 public function replace($key, $name, $defaultValue){ 13 return $this->parameters[$this->index++]->replace($key, $name, $defaultValue); 12 14 } 13 15 public function bind(PDOStatement $stmt, $value){ 16 if(!is_array($value)){ 17 throw new InvalidParameterException('is not array: ' . var_exoprt($value, true)); 18 } 19 20 $values = (array) $value; 21 foreach($this->parameters as $param){ 22 $param->bind($stmt, $values); 23 array_shift($values); 24 } 14 25 } 15 26 } 27 -
lang/php/misc/Hermit/src/Hermit/resultset/HermitProcedureResultSet.php
r19344 r19902 1 1 <?php 2 2 3 /** 4 * @author nowelium 5 */ 3 6 class HermitProcedureResultSet { 4 7 } 8 -
lang/php/misc/Hermit/src/Hermit/resultset/HermitResultSet.php
r19344 r19902 4 4 * @author nowelium 5 5 */ 6 class HermitResultSet { 7 const LIST_SUFFIX = 'List'; 8 public static function create(HermitStatement $stmt, ReflectionMethod $method){ 9 $subs = substr($method->getName(), -4); 10 if($subs !== false){ 11 if(strcasecmp($subs, self::LIST_SUFFIX) === 0){ 12 $results = array(); 13 foreach($stmt->fetch(PDO::FETCH_OBJ) as $obj){ 14 $results[] = $obj; 15 } 16 return $results; 17 } 18 } 19 return $stmt->fetch(PDO::FETCH_OBJ); 20 } 6 interface HermitResultSet { 7 public function execute(HermitStatement $stmt, HermitValueType $type); 21 8 } 9 -
lang/php/misc/Hermit/src/Hermit/statement/HermitStatementBuilder.php
r19426 r19902 5 5 */ 6 6 abstract class HermitStatementBuilder { 7 const REGEX = '/(\/\*(\w+)\*\/)((\'|")(\w+)(\'|")) /m';7 const REGEX = '/(\/\*(\w+)\*\/)((\'|")(\w+)(\'|"))?/m'; 8 8 public static function prepare(PDO $pdo, ReflectionMethod $method, $sql){ 9 9 $parameterType = self::createParameterType($method); … … 13 13 protected static function createParameterType(ReflectionMethod $method){ 14 14 $numOfParams = $method->getNumberOfParameters(); 15 if( $numOfParams < 1){15 if(0 === $numOfParams){ 16 16 return new HermitSqlParameterNull; 17 17 } 18 18 $params = $method->getParameters(); 19 if( $numOfParams == 1){19 if(1 === $numOfParams){ 20 20 return self::createParameterTypeWithIndex($params[0], 0); 21 21 } … … 43 43 } 44 44 } 45
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)