/** * 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); }