Example #1
0
 /**
  * Create a proxy class for EmailAddress entity and save it in cache
  *
  * @param Filesystem        $fs
  * @param \Twig_Environment $twig
  */
 protected function processEmailAddressTemplate(Filesystem $fs, \Twig_Environment $twig)
 {
     // Ensure the cache directory exists
     if (!$fs->exists($this->entityCacheDir)) {
         $fs->mkdir($this->entityCacheDir, 0777);
     }
     $args = array();
     $providers = $this->emailOwnerProviderStorage->getProviders();
     foreach ($providers as $provider) {
         $args[] = array('targetEntity' => $provider->getEmailOwnerClass(), 'columnName' => $this->emailOwnerProviderStorage->getEmailOwnerColumnName($provider), 'fieldName' => $this->emailOwnerProviderStorage->getEmailOwnerFieldName($provider));
     }
     $className = sprintf($this->entityProxyNameTemplate, 'EmailAddress');
     $twigParams = array('namespace' => $this->entityCacheNamespace, 'className' => $className, 'owners' => $args);
     // generate a proxy class
     $content = $twig->render('EmailAddress.php.twig', $twigParams);
     $this->writeCacheFile(sprintf('%s%s%s.php', $this->entityCacheDir, DIRECTORY_SEPARATOR, $className), $content);
     // generate ORM mappings for a proxy class
     $content = $twig->render('EmailAddress.orm.yml.twig', $twigParams);
     $this->writeCacheFile(sprintf('%s%s%s.orm.yml', $this->entityCacheDir, DIRECTORY_SEPARATOR, $className), $content);
 }