partkeepr

fork of partkeepr
git clone https://git.e1e0.net/partkeepr.git
Log | Files | Refs | Submodules | README | LICENSE

commit 27658361b8a18cbdd885edf31a29c7e998cb43ce
parent c544d57d23e70274c3e5ab5bc8b5f6fd853823d3
Author: Felicitus <felicitus@felicitus.org>
Date:   Tue,  7 Jul 2015 17:12:57 +0200

Added configuration to allow extjs models to be auto-generated per environment

Diffstat:
Mapp/config/config_dev.yml | 3+++
Mapp/config/config_test.yml | 7+++++--
Msrc/PartKeepr/DoctrineReflectionBundle/CacheWarmer/ModelCacheWarmer.php | 22+++++++++++++++-------
Msrc/PartKeepr/DoctrineReflectionBundle/Resources/config/services.xml | 1+
Msrc/PartKeepr/ImageBundle/DependencyInjection/Configuration.php | 3++-
Msrc/PartKeepr/ImageBundle/DependencyInjection/PartKeeprExtension.php | 1+
6 files changed, 27 insertions(+), 10 deletions(-)

diff --git a/app/config/config_dev.yml b/app/config/config_dev.yml @@ -34,3 +34,5 @@ assetic: #swiftmailer: # delivery_address: me@example.com +partkeepr: + auto_generate_extjs_models: true+ \ No newline at end of file diff --git a/app/config/config_test.yml b/app/config/config_test.yml @@ -33,4 +33,7 @@ doctrine: liip_functional_test: - cache_sqlite_db: true- \ No newline at end of file + cache_sqlite_db: true + +partkeepr: + auto_generate_extjs_models: false+ \ No newline at end of file diff --git a/src/PartKeepr/DoctrineReflectionBundle/CacheWarmer/ModelCacheWarmer.php b/src/PartKeepr/DoctrineReflectionBundle/CacheWarmer/ModelCacheWarmer.php @@ -3,6 +3,7 @@ namespace PartKeepr\DoctrineReflectionBundle\CacheWarmer; use Doctrine\Common\Persistence\ManagerRegistry; +use Symfony\Component\DependencyInjection\Container; use PartKeepr\DoctrineReflectionBundle\Services\ReflectionService; use Symfony\Component\HttpKernel\CacheWarmer\CacheWarmer; @@ -10,16 +11,18 @@ class ModelCacheWarmer extends CacheWarmer{ private $registry; private $reflectionService; + private $container; /** * Constructor. * * @param ManagerRegistry $registry A ManagerRegistry instance */ - public function __construct(ManagerRegistry $registry, ReflectionService $reflectionService) + public function __construct(ManagerRegistry $registry, ReflectionService $reflectionService, Container $container) { $this->reflectionService = $reflectionService; $this->registry = $registry; + $this->container = $container; } /** @@ -37,14 +40,19 @@ class ModelCacheWarmer extends CacheWarmer{ */ public function warmUp($cacheDir) { - $cacheDir .= "/doctrinereflection"; + if ($this->container->getParameter("partkeepr.auto_generate_extjs_models")) { + echo "FOO"; + $cacheDir .= "/doctrinereflection"; - $entities = $this->reflectionService->getEntities(); + $entities = $this->reflectionService->getEntities(); - foreach ($entities as $entity) { - $model = $this->reflectionService->getEntity($entity); - @mkdir($cacheDir, 0777, true); - $this->writeCacheFile($cacheDir."/".$entity.'.js', $model); + foreach ($entities as $entity) { + $model = $this->reflectionService->getEntity($entity); + + @mkdir($cacheDir, 0777, true); + $this->writeCacheFile($cacheDir."/".$entity.'.js', $model); + } } + } } \ No newline at end of file diff --git a/src/PartKeepr/DoctrineReflectionBundle/Resources/config/services.xml b/src/PartKeepr/DoctrineReflectionBundle/Resources/config/services.xml @@ -15,6 +15,7 @@ <tag name="kernel.cache_warmer"/> <argument type="service" id="doctrine"/> <argument type="service" id="doctrine_reflection_service"/> + <argument type="service" id="service_container"/> </service> </services> </container> diff --git a/src/PartKeepr/ImageBundle/DependencyInjection/Configuration.php b/src/PartKeepr/ImageBundle/DependencyInjection/Configuration.php @@ -21,7 +21,8 @@ class Configuration implements ConfigurationInterface $rootNode = $treeBuilder->root('partkeepr'); $rootNode-> - children() + children()-> + ->booleanNode('auto_generate_extjs_models')->defaultFalse()->end() ->scalarNode('image_cache_directory')->cannotBeEmpty()->isRequired()->info('The image cache directory')->end() ->arrayNode('directories') ->prototype('scalar')->end() diff --git a/src/PartKeepr/ImageBundle/DependencyInjection/PartKeeprExtension.php b/src/PartKeepr/ImageBundle/DependencyInjection/PartKeeprExtension.php @@ -17,6 +17,7 @@ class PartKeeprExtension extends Extension $config = $this->processConfiguration($configuration, $configs); $container->setParameter('partkeepr.image_cache_directory', $config['image_cache_directory']); + $container->setParameter('partkeepr.auto_generate_extjs_models', $config['auto_generate_extjs_models']); foreach ($config["directories"] as $key => $value) { $container->setParameter("partkeepr.directories.".$key, $value);