public function build(PDO $pdo, array $inputParameters) { self::checkProcedureParameter($this->method); $procedureName = $this->annote->getProcedure($this->method); $meta = HermitDatabaseMetaFactory::get($pdo); $info = $meta->getProcedureInfo($procedureName); $dbms = HermitDatabaseMetaFactory::getDbms($pdo); $parameter = null; if (isset(self::$procedureParameters[$dbms])) { $className = self::$procedureParameters[$dbms]; $parameter = new $className($info, $dbms); } else { $parameter = new HermitProcedureParameter($info, $dbms); } $parameter->setInputParameters($inputParameters); $parameter->setTargetClass($this->targetClass); $parameter->setTargetMethod($this->method); $sql = self::preparedSql($parameter, $this->sqlCreator->createSql()); $logger = HermitLoggerManager::getLogger(); if ($logger->isDebugEnabled()) { $logger->debug('{%s} preparedSql: "%s"', __CLASS__, $sql); } $statement = $pdo->prepare($sql); return new HermitDefaultStatement($parameter, $statement); }
public function __construct(HermitProcedureInfo $info, $dbms) { parent::__construct($info, $dbms); }