AuthBucket\Bundle\OAuth2Bundle\Tests\TestBundle\Controller\DefaultController::adminRefreshDatabaseAction PHP 메소드

adminRefreshDatabaseAction() 공개 메소드

public adminRefreshDatabaseAction ( Request $request )
$request Symfony\Component\HttpFoundation\Request
    public function adminRefreshDatabaseAction(Request $request)
    {
        $conn = $this->get('database_connection');
        $em = $this->get('doctrine')->getManager();
        $params = $conn->getParams();
        $name = isset($params['path']) ? $params['path'] : (isset($params['dbname']) ? $params['dbname'] : false);
        try {
            $conn->getSchemaManager()->dropDatabase($name);
            $conn->getSchemaManager()->createDatabase($name);
            $conn->close();
        } catch (\Exception $e) {
            return 1;
        }
        $classes = [];
        foreach ($this->container->getParameter('authbucket_oauth2.model') as $class) {
            $classes[] = $em->getClassMetadata($class);
        }
        PersistentObject::setObjectManager($em);
        $tool = new SchemaTool($em);
        $tool->dropSchema($classes);
        $tool->createSchema($classes);
        $purger = new ORMPurger();
        $executor = new ORMExecutor($em, $purger);
        $loader = new Loader();
        $loader->loadFromDirectory(__DIR__ . '/../DataFixtures/ORM');
        $executor->execute($loader->getFixtures());
        return $this->redirect($this->get('router')->generate('index'));
    }