Completed
Pull Request — 4.0 (#85)
by David
11:36 queued 05:53
created
src/Mouf/Database/TDBM/Controllers/TdbmInstallController.php 1 patch
Indentation   +164 added lines, -164 removed lines patch added patch discarded remove patch
@@ -15,168 +15,168 @@
 block discarded – undo
15 15
  */
16 16
 class TdbmInstallController extends Controller
17 17
 {
18
-    /**
19
-     * @var HtmlBlock
20
-     */
21
-    public $content;
22
-
23
-    public $selfedit;
24
-
25
-    /**
26
-     * The active MoufManager to be edited/viewed.
27
-     *
28
-     * @var MoufManager
29
-     */
30
-    public $moufManager;
31
-
32
-    /**
33
-     * The template used by the main page for mouf.
34
-     *
35
-     * @Property
36
-     * @Compulsory
37
-     *
38
-     * @var TemplateInterface
39
-     */
40
-    public $template;
41
-
42
-    /**
43
-     * Displays the first install screen.
44
-     *
45
-     * @Action
46
-     * @Logged
47
-     *
48
-     * @param string $selfedit If true, the name of the component must be a component from the Mouf framework itself (internal use only)
49
-     */
50
-    public function defaultAction($selfedit = 'false')
51
-    {
52
-        $this->selfedit = $selfedit;
53
-
54
-        if ($selfedit == 'true') {
55
-            $this->moufManager = MoufManager::getMoufManager();
56
-        } else {
57
-            $this->moufManager = MoufManager::getMoufManagerHiddenInstance();
58
-        }
59
-
60
-        $this->content->addFile(dirname(__FILE__).'/../../../../views/installStep1.php', $this);
61
-        $this->template->toHtml();
62
-    }
63
-
64
-    /**
65
-     * Skips the install process.
66
-     *
67
-     * @Action
68
-     * @Logged
69
-     *
70
-     * @param string $selfedit If true, the name of the component must be a component from the Mouf framework itself (internal use only)
71
-     */
72
-    public function skip($selfedit = 'false')
73
-    {
74
-        InstallUtils::continueInstall($selfedit == 'true');
75
-    }
76
-
77
-    protected $daoNamespace;
78
-    protected $beanNamespace;
79
-    protected $autoloadDetected;
80
-    protected $storeInUtc;
81
-    protected $useCustomComposer = false;
82
-
83
-    /**
84
-     * Displays the second install screen.
85
-     *
86
-     * @Action
87
-     * @Logged
88
-     *
89
-     * @param string $selfedit If true, the name of the component must be a component from the Mouf framework itself (internal use only)
90
-     */
91
-    public function configure($selfedit = 'false')
92
-    {
93
-        $this->selfedit = $selfedit;
94
-
95
-        if ($selfedit == 'true') {
96
-            $this->moufManager = MoufManager::getMoufManager();
97
-        } else {
98
-            $this->moufManager = MoufManager::getMoufManagerHiddenInstance();
99
-        }
100
-
101
-        // Let's start by performing basic checks about the instances we assume to exist.
102
-        if (!$this->moufManager->instanceExists('dbalConnection')) {
103
-            $this->displayErrorMsg("The TDBM install process assumes your database connection instance is already created, and that the name of this instance is 'dbalConnection'. Could not find the 'dbalConnection' instance.");
104
-
105
-            return;
106
-        }
107
-
108
-        $this->daoNamespace = $this->moufManager->getVariable('tdbmDefaultDaoNamespace_tdbmService');
109
-        $this->beanNamespace = $this->moufManager->getVariable('tdbmDefaultBeanNamespace_tdbmService');
110
-
111
-        if ($this->daoNamespace == null && $this->beanNamespace == null) {
112
-            $classNameMapper = ClassNameMapper::createFromComposerFile(__DIR__.'/../../../../../../../../composer.json');
113
-
114
-            $autoloadNamespaces = $classNameMapper->getManagedNamespaces();
115
-            if ($autoloadNamespaces) {
116
-                $this->autoloadDetected = true;
117
-                $rootNamespace = $autoloadNamespaces[0];
118
-                $this->daoNamespace = $rootNamespace.'Model\\Dao';
119
-                $this->beanNamespace = $rootNamespace.'Model\\Bean';
120
-            } else {
121
-                $this->autoloadDetected = false;
122
-                $this->daoNamespace = 'YourApplication\\Model\\Dao';
123
-                $this->beanNamespace = 'YourApplication\\Model\\Bean';
124
-            }
125
-        } else {
126
-            $this->autoloadDetected = true;
127
-        }
128
-        $this->defaultPath = true;
129
-        $this->storePath = '';
130
-
131
-        $this->castDatesToDateTime = true;
132
-
133
-        $this->content->addFile(dirname(__FILE__).'/../../../../views/installStep2.php', $this);
134
-        $this->template->toHtml();
135
-    }
136
-
137
-    /**
138
-     * This action generates the TDBM instance, then the DAOs and Beans.
139
-     *
140
-     * @Action
141
-     *
142
-     * @param string $daonamespace
143
-     * @param string $beannamespace
144
-     * @param int    $storeInUtc
145
-     * @param string $selfedit
146
-     *
147
-     * @throws \Mouf\MoufException
148
-     */
149
-    public function generate($daonamespace, $beannamespace, $storeInUtc = 0, $selfedit = 'false', $defaultPath = false, $storePath = '')
150
-    {
151
-        $this->selfedit = $selfedit;
152
-
153
-        if ($selfedit == 'true') {
154
-            $this->moufManager = MoufManager::getMoufManager();
155
-        } else {
156
-            $this->moufManager = MoufManager::getMoufManagerHiddenInstance();
157
-        }
158
-
159
-        $doctrineCache = $this->moufManager->getInstanceDescriptor('defaultDoctrineCache');
160
-
161
-        if (!$this->moufManager->instanceExists('tdbmService')) {
162
-            $tdbmService = $this->moufManager->createInstance('Mouf\\Database\\TDBM\\TDBMService')->setName('tdbmService');
163
-            $tdbmService->getConstructorArgumentProperty('connection')->setValue($this->moufManager->getInstanceDescriptor('dbalConnection'));
164
-            $tdbmService->getConstructorArgumentProperty('cache')->setValue($doctrineCache);
165
-        }
166
-
167
-        $this->moufManager->rewriteMouf();
168
-
169
-        TdbmController::generateDaos($this->moufManager, 'tdbmService', $daonamespace, $beannamespace, 'DaoFactory', 'daoFactory', $selfedit, $storeInUtc, $defaultPath, $storePath);
170
-
171
-        InstallUtils::continueInstall($selfedit == 'true');
172
-    }
173
-
174
-    protected $errorMsg;
175
-
176
-    private function displayErrorMsg($msg)
177
-    {
178
-        $this->errorMsg = $msg;
179
-        $this->content->addFile(dirname(__FILE__).'/../../../../views/installError.php', $this);
180
-        $this->template->toHtml();
181
-    }
18
+	/**
19
+	 * @var HtmlBlock
20
+	 */
21
+	public $content;
22
+
23
+	public $selfedit;
24
+
25
+	/**
26
+	 * The active MoufManager to be edited/viewed.
27
+	 *
28
+	 * @var MoufManager
29
+	 */
30
+	public $moufManager;
31
+
32
+	/**
33
+	 * The template used by the main page for mouf.
34
+	 *
35
+	 * @Property
36
+	 * @Compulsory
37
+	 *
38
+	 * @var TemplateInterface
39
+	 */
40
+	public $template;
41
+
42
+	/**
43
+	 * Displays the first install screen.
44
+	 *
45
+	 * @Action
46
+	 * @Logged
47
+	 *
48
+	 * @param string $selfedit If true, the name of the component must be a component from the Mouf framework itself (internal use only)
49
+	 */
50
+	public function defaultAction($selfedit = 'false')
51
+	{
52
+		$this->selfedit = $selfedit;
53
+
54
+		if ($selfedit == 'true') {
55
+			$this->moufManager = MoufManager::getMoufManager();
56
+		} else {
57
+			$this->moufManager = MoufManager::getMoufManagerHiddenInstance();
58
+		}
59
+
60
+		$this->content->addFile(dirname(__FILE__).'/../../../../views/installStep1.php', $this);
61
+		$this->template->toHtml();
62
+	}
63
+
64
+	/**
65
+	 * Skips the install process.
66
+	 *
67
+	 * @Action
68
+	 * @Logged
69
+	 *
70
+	 * @param string $selfedit If true, the name of the component must be a component from the Mouf framework itself (internal use only)
71
+	 */
72
+	public function skip($selfedit = 'false')
73
+	{
74
+		InstallUtils::continueInstall($selfedit == 'true');
75
+	}
76
+
77
+	protected $daoNamespace;
78
+	protected $beanNamespace;
79
+	protected $autoloadDetected;
80
+	protected $storeInUtc;
81
+	protected $useCustomComposer = false;
82
+
83
+	/**
84
+	 * Displays the second install screen.
85
+	 *
86
+	 * @Action
87
+	 * @Logged
88
+	 *
89
+	 * @param string $selfedit If true, the name of the component must be a component from the Mouf framework itself (internal use only)
90
+	 */
91
+	public function configure($selfedit = 'false')
92
+	{
93
+		$this->selfedit = $selfedit;
94
+
95
+		if ($selfedit == 'true') {
96
+			$this->moufManager = MoufManager::getMoufManager();
97
+		} else {
98
+			$this->moufManager = MoufManager::getMoufManagerHiddenInstance();
99
+		}
100
+
101
+		// Let's start by performing basic checks about the instances we assume to exist.
102
+		if (!$this->moufManager->instanceExists('dbalConnection')) {
103
+			$this->displayErrorMsg("The TDBM install process assumes your database connection instance is already created, and that the name of this instance is 'dbalConnection'. Could not find the 'dbalConnection' instance.");
104
+
105
+			return;
106
+		}
107
+
108
+		$this->daoNamespace = $this->moufManager->getVariable('tdbmDefaultDaoNamespace_tdbmService');
109
+		$this->beanNamespace = $this->moufManager->getVariable('tdbmDefaultBeanNamespace_tdbmService');
110
+
111
+		if ($this->daoNamespace == null && $this->beanNamespace == null) {
112
+			$classNameMapper = ClassNameMapper::createFromComposerFile(__DIR__.'/../../../../../../../../composer.json');
113
+
114
+			$autoloadNamespaces = $classNameMapper->getManagedNamespaces();
115
+			if ($autoloadNamespaces) {
116
+				$this->autoloadDetected = true;
117
+				$rootNamespace = $autoloadNamespaces[0];
118
+				$this->daoNamespace = $rootNamespace.'Model\\Dao';
119
+				$this->beanNamespace = $rootNamespace.'Model\\Bean';
120
+			} else {
121
+				$this->autoloadDetected = false;
122
+				$this->daoNamespace = 'YourApplication\\Model\\Dao';
123
+				$this->beanNamespace = 'YourApplication\\Model\\Bean';
124
+			}
125
+		} else {
126
+			$this->autoloadDetected = true;
127
+		}
128
+		$this->defaultPath = true;
129
+		$this->storePath = '';
130
+
131
+		$this->castDatesToDateTime = true;
132
+
133
+		$this->content->addFile(dirname(__FILE__).'/../../../../views/installStep2.php', $this);
134
+		$this->template->toHtml();
135
+	}
136
+
137
+	/**
138
+	 * This action generates the TDBM instance, then the DAOs and Beans.
139
+	 *
140
+	 * @Action
141
+	 *
142
+	 * @param string $daonamespace
143
+	 * @param string $beannamespace
144
+	 * @param int    $storeInUtc
145
+	 * @param string $selfedit
146
+	 *
147
+	 * @throws \Mouf\MoufException
148
+	 */
149
+	public function generate($daonamespace, $beannamespace, $storeInUtc = 0, $selfedit = 'false', $defaultPath = false, $storePath = '')
150
+	{
151
+		$this->selfedit = $selfedit;
152
+
153
+		if ($selfedit == 'true') {
154
+			$this->moufManager = MoufManager::getMoufManager();
155
+		} else {
156
+			$this->moufManager = MoufManager::getMoufManagerHiddenInstance();
157
+		}
158
+
159
+		$doctrineCache = $this->moufManager->getInstanceDescriptor('defaultDoctrineCache');
160
+
161
+		if (!$this->moufManager->instanceExists('tdbmService')) {
162
+			$tdbmService = $this->moufManager->createInstance('Mouf\\Database\\TDBM\\TDBMService')->setName('tdbmService');
163
+			$tdbmService->getConstructorArgumentProperty('connection')->setValue($this->moufManager->getInstanceDescriptor('dbalConnection'));
164
+			$tdbmService->getConstructorArgumentProperty('cache')->setValue($doctrineCache);
165
+		}
166
+
167
+		$this->moufManager->rewriteMouf();
168
+
169
+		TdbmController::generateDaos($this->moufManager, 'tdbmService', $daonamespace, $beannamespace, 'DaoFactory', 'daoFactory', $selfedit, $storeInUtc, $defaultPath, $storePath);
170
+
171
+		InstallUtils::continueInstall($selfedit == 'true');
172
+	}
173
+
174
+	protected $errorMsg;
175
+
176
+	private function displayErrorMsg($msg)
177
+	{
178
+		$this->errorMsg = $msg;
179
+		$this->content->addFile(dirname(__FILE__).'/../../../../views/installError.php', $this);
180
+		$this->template->toHtml();
181
+	}
182 182
 }
Please login to merge, or discard this patch.
src/Mouf/Database/TDBM/Utils/ScalarBeanPropertyDescriptor.php 1 patch
Indentation   +168 added lines, -168 removed lines patch added patch discarded remove patch
@@ -11,128 +11,128 @@  discard block
 block discarded – undo
11 11
  */
12 12
 class ScalarBeanPropertyDescriptor extends AbstractBeanPropertyDescriptor
13 13
 {
14
-    /**
15
-     * @var Column
16
-     */
17
-    private $column;
18
-
19
-    public function __construct(Table $table, Column $column)
20
-    {
21
-        parent::__construct($table);
22
-        $this->table = $table;
23
-        $this->column = $column;
24
-    }
25
-
26
-    /**
27
-     * Returns the foreign-key the column is part of, if any. null otherwise.
28
-     *
29
-     * @return ForeignKeyConstraint|null
30
-     */
31
-    public function getForeignKey()
32
-    {
33
-        return false;
34
-    }
35
-
36
-    /**
37
-     * Returns the param annotation for this property (useful for constructor).
38
-     *
39
-     * @return string
40
-     */
41
-    public function getParamAnnotation()
42
-    {
43
-        $className = $this->getClassName();
44
-        $paramType = $className ?: TDBMDaoGenerator::dbalTypeToPhpType($this->column->getType());
45
-
46
-        $str = '     * @param %s %s';
47
-
48
-        return sprintf($str, $paramType, $this->getVariableName());
49
-    }
50
-
51
-    public function getUpperCamelCaseName()
52
-    {
53
-        return TDBMDaoGenerator::toCamelCase($this->column->getName());
54
-    }
55
-
56
-    /**
57
-     * Returns the name of the class linked to this property or null if this is not a foreign key.
58
-     *
59
-     * @return null|string
60
-     */
61
-    public function getClassName()
62
-    {
63
-        return;
64
-    }
65
-
66
-    /**
67
-     * Returns true if the property is compulsory (and therefore should be fetched in the constructor).
68
-     *
69
-     * @return bool
70
-     */
71
-    public function isCompulsory()
72
-    {
73
-        return $this->column->getNotnull() && !$this->column->getAutoincrement() && $this->column->getDefault() === null;
74
-    }
75
-
76
-    /**
77
-     * Returns true if the property has a default value.
78
-     *
79
-     * @return bool
80
-     */
81
-    public function hasDefault()
82
-    {
83
-        return $this->column->getDefault() !== null;
84
-    }
85
-
86
-    /**
87
-     * Returns the code that assigns a value to its default value.
88
-     *
89
-     * @return string
90
-     */
91
-    public function assignToDefaultCode()
92
-    {
93
-        $str = '        $this->%s(%s);';
94
-
95
-        $default = $this->column->getDefault();
96
-
97
-        if (strtoupper($default) === 'CURRENT_TIMESTAMP') {
98
-            $defaultCode = 'new \DateTimeImmutable()';
99
-        } else {
100
-            $defaultCode = var_export($this->column->getDefault(), true);
101
-        }
102
-
103
-        return sprintf($str, $this->getSetterName(), $defaultCode);
104
-    }
105
-
106
-    /**
107
-     * Returns true if the property is the primary key.
108
-     *
109
-     * @return bool
110
-     */
111
-    public function isPrimaryKey()
112
-    {
113
-        return in_array($this->column->getName(), $this->table->getPrimaryKeyColumns());
114
-    }
115
-
116
-    /**
117
-     * Returns the PHP code for getters and setters.
118
-     *
119
-     * @return string
120
-     */
121
-    public function getGetterSetterCode()
122
-    {
123
-        $type = $this->column->getType();
124
-        $normalizedType = TDBMDaoGenerator::dbalTypeToPhpType($type);
125
-
126
-        $columnGetterName = $this->getGetterName();
127
-        $columnSetterName = $this->getSetterName();
128
-
129
-        if ($normalizedType == '\\DateTimeInterface') {
130
-            $castTo = '\\DateTimeInterface ';
131
-        } else {
132
-            $castTo = '';
133
-        }
134
-
135
-        $getterAndSetterCode = '    /**
14
+	/**
15
+	 * @var Column
16
+	 */
17
+	private $column;
18
+
19
+	public function __construct(Table $table, Column $column)
20
+	{
21
+		parent::__construct($table);
22
+		$this->table = $table;
23
+		$this->column = $column;
24
+	}
25
+
26
+	/**
27
+	 * Returns the foreign-key the column is part of, if any. null otherwise.
28
+	 *
29
+	 * @return ForeignKeyConstraint|null
30
+	 */
31
+	public function getForeignKey()
32
+	{
33
+		return false;
34
+	}
35
+
36
+	/**
37
+	 * Returns the param annotation for this property (useful for constructor).
38
+	 *
39
+	 * @return string
40
+	 */
41
+	public function getParamAnnotation()
42
+	{
43
+		$className = $this->getClassName();
44
+		$paramType = $className ?: TDBMDaoGenerator::dbalTypeToPhpType($this->column->getType());
45
+
46
+		$str = '     * @param %s %s';
47
+
48
+		return sprintf($str, $paramType, $this->getVariableName());
49
+	}
50
+
51
+	public function getUpperCamelCaseName()
52
+	{
53
+		return TDBMDaoGenerator::toCamelCase($this->column->getName());
54
+	}
55
+
56
+	/**
57
+	 * Returns the name of the class linked to this property or null if this is not a foreign key.
58
+	 *
59
+	 * @return null|string
60
+	 */
61
+	public function getClassName()
62
+	{
63
+		return;
64
+	}
65
+
66
+	/**
67
+	 * Returns true if the property is compulsory (and therefore should be fetched in the constructor).
68
+	 *
69
+	 * @return bool
70
+	 */
71
+	public function isCompulsory()
72
+	{
73
+		return $this->column->getNotnull() && !$this->column->getAutoincrement() && $this->column->getDefault() === null;
74
+	}
75
+
76
+	/**
77
+	 * Returns true if the property has a default value.
78
+	 *
79
+	 * @return bool
80
+	 */
81
+	public function hasDefault()
82
+	{
83
+		return $this->column->getDefault() !== null;
84
+	}
85
+
86
+	/**
87
+	 * Returns the code that assigns a value to its default value.
88
+	 *
89
+	 * @return string
90
+	 */
91
+	public function assignToDefaultCode()
92
+	{
93
+		$str = '        $this->%s(%s);';
94
+
95
+		$default = $this->column->getDefault();
96
+
97
+		if (strtoupper($default) === 'CURRENT_TIMESTAMP') {
98
+			$defaultCode = 'new \DateTimeImmutable()';
99
+		} else {
100
+			$defaultCode = var_export($this->column->getDefault(), true);
101
+		}
102
+
103
+		return sprintf($str, $this->getSetterName(), $defaultCode);
104
+	}
105
+
106
+	/**
107
+	 * Returns true if the property is the primary key.
108
+	 *
109
+	 * @return bool
110
+	 */
111
+	public function isPrimaryKey()
112
+	{
113
+		return in_array($this->column->getName(), $this->table->getPrimaryKeyColumns());
114
+	}
115
+
116
+	/**
117
+	 * Returns the PHP code for getters and setters.
118
+	 *
119
+	 * @return string
120
+	 */
121
+	public function getGetterSetterCode()
122
+	{
123
+		$type = $this->column->getType();
124
+		$normalizedType = TDBMDaoGenerator::dbalTypeToPhpType($type);
125
+
126
+		$columnGetterName = $this->getGetterName();
127
+		$columnSetterName = $this->getSetterName();
128
+
129
+		if ($normalizedType == '\\DateTimeInterface') {
130
+			$castTo = '\\DateTimeInterface ';
131
+		} else {
132
+			$castTo = '';
133
+		}
134
+
135
+		$getterAndSetterCode = '    /**
136 136
      * The getter for the "%s" column.
137 137
      *
138 138
      * @return %s
@@ -152,50 +152,50 @@  discard block
 block discarded – undo
152 152
 
153 153
 ';
154 154
 
155
-        return sprintf($getterAndSetterCode,
156
-            // Getter
157
-            $this->column->getName(),
158
-            $normalizedType,
159
-            $columnGetterName,
160
-            var_export($this->column->getName(), true),
161
-            var_export($this->table->getName(), true),
162
-            // Setter
163
-            $this->column->getName(),
164
-            $normalizedType,
165
-            $this->column->getName(),
166
-            $columnSetterName,
167
-            $castTo,
168
-            $this->column->getName().($castTo ? ($this->column->getNotnull() ? '' : ' = null') : ''),
169
-            var_export($this->column->getName(), true),
170
-            $this->column->getName(),
171
-            var_export($this->table->getName(), true)
172
-        );
173
-    }
174
-
175
-    /**
176
-     * Returns the part of code useful when doing json serialization.
177
-     *
178
-     * @return string
179
-     */
180
-    public function getJsonSerializeCode()
181
-    {
182
-        $type = $this->column->getType();
183
-        $normalizedType = TDBMDaoGenerator::dbalTypeToPhpType($type);
184
-
185
-        if ($normalizedType == '\\DateTimeInterface') {
186
-            return '        $array['.var_export($this->getLowerCamelCaseName(), true).'] = ($this->'.$this->getGetterName().'() === null)?null:$this->'.$this->getGetterName()."()->format('c');\n";
187
-        } else {
188
-            return '        $array['.var_export($this->getLowerCamelCaseName(), true).'] = $this->'.$this->getGetterName()."();\n";
189
-        }
190
-    }
191
-
192
-    /**
193
-     * Returns the column name.
194
-     *
195
-     * @return string
196
-     */
197
-    public function getColumnName()
198
-    {
199
-        return $this->column->getName();
200
-    }
155
+		return sprintf($getterAndSetterCode,
156
+			// Getter
157
+			$this->column->getName(),
158
+			$normalizedType,
159
+			$columnGetterName,
160
+			var_export($this->column->getName(), true),
161
+			var_export($this->table->getName(), true),
162
+			// Setter
163
+			$this->column->getName(),
164
+			$normalizedType,
165
+			$this->column->getName(),
166
+			$columnSetterName,
167
+			$castTo,
168
+			$this->column->getName().($castTo ? ($this->column->getNotnull() ? '' : ' = null') : ''),
169
+			var_export($this->column->getName(), true),
170
+			$this->column->getName(),
171
+			var_export($this->table->getName(), true)
172
+		);
173
+	}
174
+
175
+	/**
176
+	 * Returns the part of code useful when doing json serialization.
177
+	 *
178
+	 * @return string
179
+	 */
180
+	public function getJsonSerializeCode()
181
+	{
182
+		$type = $this->column->getType();
183
+		$normalizedType = TDBMDaoGenerator::dbalTypeToPhpType($type);
184
+
185
+		if ($normalizedType == '\\DateTimeInterface') {
186
+			return '        $array['.var_export($this->getLowerCamelCaseName(), true).'] = ($this->'.$this->getGetterName().'() === null)?null:$this->'.$this->getGetterName()."()->format('c');\n";
187
+		} else {
188
+			return '        $array['.var_export($this->getLowerCamelCaseName(), true).'] = $this->'.$this->getGetterName()."();\n";
189
+		}
190
+	}
191
+
192
+	/**
193
+	 * Returns the column name.
194
+	 *
195
+	 * @return string
196
+	 */
197
+	public function getColumnName()
198
+	{
199
+		return $this->column->getName();
200
+	}
201 201
 }
Please login to merge, or discard this patch.