Example #1
0
 private function exportDao($intf, SQLLogger $logger = null)
 {
     if (!file_exists('tests/fixtures/exports')) {
         @mkdir('tests/fixtures/exports', 0777, true);
     }
     $config = new Configuration();
     $values = ['sqlRootDir' => 'tests/fixtures/sql', 'connectionString' => 'firebird:dbname=tests/fixtures/todo.fdb', 'dialect' => 'firebird', 'watchMode' => 'Always'];
     foreach ($values as $f => $v) {
         $config->{$f} = $v;
     }
     $context = new DaoBuilderContext($config);
     $builder = new DaoBuilder(new \ReflectionClass($intf), $context->getDaoClassName($intf));
     $builder->prepare();
     $c = $builder->export(true);
     $implClass = basename($builder->getClassName());
     $path = "tests/fixtures/exports/{$implClass}.php";
     file_put_contents($path, $c);
     require_once $path;
     $implClass = $builder->getClassName();
     $params = ['pdo' => new \PDO($context->getConfig()->connectionString, 'SYSDBA', 'masterkey'), 'driverClass' => FirebirdDriver::class];
     $conn = \Doctrine\DBAL\DriverManager::getConnection($params);
     $conn->getConfiguration()->setSQLLogger($logger);
     return new $implClass($conn, $context);
 }
Example #2
0
 private function exportDao($intf, SQLLogger $logger = null)
 {
     if (!file_exists('tests/fixtures/exports')) {
         @mkdir('tests/fixtures/exports', 0777, true);
     }
     @copy('tests/fixtures/todo.orig.sqlite3', 'tests/fixtures/todo.sqlite3');
     $config = new Configuration();
     $values = ['sqlRootDir' => 'tests/fixtures/sql', 'connectionString' => 'sqlite://localhost/?path=tests/fixtures/todo.sqlite3', 'watchMode' => 'Always'];
     foreach ($values as $f => $v) {
         $config->{$f} = $v;
     }
     $context = new DaoBuilderContext($config);
     $builder = new DaoBuilder(new \ReflectionClass($intf), $context->getDaoClassName($intf));
     $builder->prepare();
     $c = $builder->export(true);
     $implClass = basename($builder->getClassName());
     $path = "tests/fixtures/exports/{$implClass}.php";
     file_put_contents($path, $c);
     require_once $path;
     $implClass = $builder->getClassName();
     $conn = \Doctrine\DBAL\DriverManager::getConnection(['url' => $context->getConfig()->connectionString]);
     $conn->getConfiguration()->setSQLLogger($logger);
     return new $implClass($conn, $context);
 }
Example #3
0
 /**
  * @param string intfName
  */
 public function build($intfName)
 {
     $classPath = $this->config->daoClassPath;
     $className = $this->getDaoClassName($intfName);
     $path = $this->normalizePath("{$classPath}/{$className}.php");
     if (!file_exists(dirname($path))) {
         mkdir(dirname($path), 0777, true);
     }
     $ref = new \ReflectionClass($intfName);
     if ($this->watcher->outdated($ref->getFileName()) || $this->watcher->sqlOutdated($className::AccessRoute)) {
         $builder = new DaoBuilder($ref, $className);
         $builder->setParamCaseSensor(CaseSensor::{$this->config->paramCaseSensor}());
         $builder->setReturnCaseSensor(CaseSensor::{$this->config->returnCaseSensor}());
         $builder->prepare();
         file_put_contents($path, $builder->export(true));
     }
 }