/** * @param Configuration $cliConfig */ protected function _doRun(\Doctrine\Common\Cli\Configuration $cliConfig) { if (!is_writable(dirname($this->installSqlFile))) { throw new \BuildException("Directory to write Install Sql File into is not writable."); } $em = $cliConfig->getAttribute('em'); $schemaTool = new \Doctrine\ORM\Tools\SchemaTool($em); $cmf = $em->getMetadataFactory(); $classes = $cmf->getAllMetadata(); $sql = $schemaTool->getCreateSchemaSql($classes); $code = "<?php\n\nreturn " . var_export($sql, true) . ";\n"; file_put_contents($this->installSqlFile, $code); $this->log("Wrote the Array of SQL statements to create schema to file " . $this->installSqlFile); }
/** * @param Configuration $cliConfig */ protected function _doRun(\Doctrine\Common\Cli\Configuration $cliConfig) { if ($this->proxyDir !== null && (!is_dir($this->proxyDir) || !is_writable($this->proxyDir))) { throw new \BuildException("Proxy directory is not valid or writable."); } /* @var $cliConfig \Doctrine\Common\Cli\Configuration */ $em = $cliConfig->getAttribute('em'); $cmf = $em->getMetadataFactory(); $classes = $cmf->getAllMetadata(); $factory = $em->getProxyFactory(); if (empty($classes)) { $this->log('No classes to generate proxies for.'); } else { $proxyDir = $this->proxyDir != null ? $this->proxyDir : $em->getConfiguration()->getProxyDir(); $factory->generateProxyClasses($classes, $proxyDir); $this->log('Doctrine 2 proxy classes generated to: ' . $proxyDir); } }