| 8 | | public static function prepare(PDO $pdo, ReflectionMethod $method, $sql){ |
| 9 | | $parameterType = self::createParameterType($method); |
| 10 | | $sql = preg_replace_callback(self::REGEX, array($parameterType, 'match'), $sql); |
| 11 | | return new HermitStatement($parameterType, $pdo->prepare($sql)); |
| | 8 | private $method; |
| | 9 | private $sqlCreator; |
| | 10 | public function __construct(ReflectionMethod $method, HermitSqlCreator $sqlCreator){ |
| | 11 | $this->method = $method; |
| | 12 | $this->sqlCreator = $sqlCreator; |
| 13 | | protected static function createParameterType(ReflectionMethod $method){ |
| 14 | | $numOfParams = $method->getNumberOfParameters(); |
| | 14 | public function build(PDO $pdo){ |
| | 15 | $parameter = $this->createParameterType(); |
| | 16 | $sql = $this->sqlCreator->createSql($pdo); |
| | 17 | $sql = self::preparedSql($parameter, $sql); |
| | 18 | return new HermitStatement($parameter, $pdo->prepare($sql)); |
| | 19 | } |
| | 20 | |
| | 21 | protected static function preparedSql(HermitSqlParameter $parameter, $sql){ |
| | 22 | return preg_replace_callback(self::REGEX, array($parameter, 'match'), $sql); |
| | 23 | } |
| | 24 | |
| | 25 | protected function createParameterType(){ |
| | 26 | $numOfParams = $this->method->getNumberOfParameters(); |