-
Notifications
You must be signed in to change notification settings - Fork 30
Expand file tree
/
Copy pathDoctrineODMGenerator.php
More file actions
98 lines (86 loc) · 4.05 KB
/
DoctrineODMGenerator.php
File metadata and controls
98 lines (86 loc) · 4.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
<?php
namespace Admingenerator\GeneratorBundle\Generator;
use Admingenerator\GeneratorBundle\Builder\Generator as AdminGenerator;
use Admingenerator\GeneratorBundle\Builder\DoctrineODM\ListBuilderAction;
use Admingenerator\GeneratorBundle\Builder\DoctrineODM\ListBuilderTemplate;
use Admingenerator\GeneratorBundle\Builder\DoctrineODM\FiltersBuilderType;
use Admingenerator\GeneratorBundle\Builder\DoctrineODM\ExcelBuilderAction;
use Admingenerator\GeneratorBundle\Builder\DoctrineODM\EditBuilderAction;
use Admingenerator\GeneratorBundle\Builder\DoctrineODM\EditBuilderTemplate;
use Admingenerator\GeneratorBundle\Builder\DoctrineODM\EditBuilderType;
use Admingenerator\GeneratorBundle\Builder\DoctrineODM\NewBuilderAction;
use Admingenerator\GeneratorBundle\Builder\DoctrineODM\NewBuilderTemplate;
use Admingenerator\GeneratorBundle\Builder\DoctrineODM\NewBuilderType;
use Admingenerator\GeneratorBundle\Builder\DoctrineODM\ShowBuilderAction;
use Admingenerator\GeneratorBundle\Builder\DoctrineODM\ShowBuilderTemplate;
use Admingenerator\GeneratorBundle\Builder\DoctrineODM\ActionsBuilderAction;
use Admingenerator\GeneratorBundle\Builder\DoctrineODM\ActionsBuilderTemplate;
class DoctrineODMGenerator extends Generator
{
/**
* (non-PHPdoc)
* @see Generator/Admingenerator\GeneratorBundle\Generator.Generator::doBuild()
*/
protected function doBuild()
{
$this->validateYaml();
$generator = new AdminGenerator($this->cache_dir, $this->getGeneratorYml());
$generator->setBundleConfig($this->bundleConfig);
$generator->setRouter($this->router);
$generator->setBaseAdminTemplate(
$generator->getFromYaml(
'base_admin_template',
$generator->getFromBundleConfig('base_admin_template')
)
);
$generator->setFieldGuesser($this->getFieldGuesser());
$generator->setMustOverwriteIfExists($this->needToOverwrite($generator));
$generator->setTwigExtensions($this->twig->getExtensions());
$generator->setTwigFilters($this->twig->getFilters());
$generator->setTemplateDirs($this->templatesDirectories);
$generator->setBaseController(
'Admingenerator\GeneratorBundle\Controller\DoctrineODM\BaseController'
);
$generator->setBaseGeneratorName($this->getBaseGeneratorName());
$builders = $generator->getBuildersFromYaml();
$formsOnly = $generator->isFormsOnly();
if (array_key_exists('list', $builders)) {
if (!$formsOnly) {
$generator->addBuilder(new ListBuilderAction());
$generator->addBuilder(new ListBuilderTemplate());
}
$generator->addBuilder(new FiltersBuilderType());
}
if (array_key_exists('edit', $builders)) {
if (!$formsOnly) {
$generator->addBuilder(new EditBuilderAction());
$generator->addBuilder(new EditBuilderTemplate());
}
$generator->addBuilder(new EditBuilderType());
}
if (array_key_exists('new', $builders)) {
if (!$formsOnly) {
$generator->addBuilder(new NewBuilderAction());
$generator->addBuilder(new NewBuilderTemplate());
}
$generator->addBuilder(new NewBuilderType());
}
if (array_key_exists('show', $builders) && !$formsOnly) {
$generator->addBuilder(new ShowBuilderAction());
$generator->addBuilder(new ShowBuilderTemplate());
}
if (array_key_exists('excel', $builders) && !$formsOnly) {
$generator->addBuilder(new ExcelBuilderAction());
}
if (array_key_exists('actions', $builders) && !$formsOnly) {
$generator->addBuilder(new ActionsBuilderAction());
$generator->addBuilder(new ActionsBuilderTemplate());
}
$generator->writeOnDisk(
$this->getCachePath(
$generator->getFromYaml('params.namespace_prefix'),
$generator->getFromYaml('params.bundle_name')
)
);
}
}