public function initialize()
 {
     require_once "vendor/autoload.php";
     $cache = new \Doctrine\Common\Cache\ArrayCache();
     $config = new Doctrine\ORM\Configuration();
     $config->setMetadataCacheImpl($cache);
     $driverImpl = $config->newDefaultAnnotationDriver(__DIR__ . '/models');
     $config->setMetadataDriverImpl($driverImpl);
     $config->setQueryCacheImpl($cache);
     $config->setProxyDir(__DIR__ . '/proxies');
     $config->setProxyNamespace('Proxies');
     $config->setAutoGenerateProxyClasses(false);
     // no code generation in production
     $dbParams = array('driver' => 'pdo_sqlite', 'memory' => true);
     $this->em = Doctrine\ORM\EntityManager::create($dbParams, $config);
     if (!self::$classes) {
         self::$classes = $this->em->getMetadataFactory()->getAllMetadata();
     }
     $schemaTool = new Doctrine\ORM\Tools\SchemaTool($this->em);
     $schemaTool->createSchema(self::$classes);
     require_once __DIR__ . '/proxies/AuthorProxy.php';
 }