Completed
Pull Request — 3.4 (#46)
by David
20:58
created
src/views/installStep2.php 1 patch
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -29,7 +29,7 @@
 block discarded – undo
29 29
 <div class="control-group">
30 30
 	<label class="control-label">Store dates / timestamps in UTC:</label>
31 31
 	<div class="controls">
32
-		<input type="checkbox" name="storeInUtc" value="1" <?php echo $this->storeInUtc?'checked="checked"':"" ?>></input>
32
+		<input type="checkbox" name="storeInUtc" value="1" <?php echo $this->storeInUtc ? 'checked="checked"' : "" ?>></input>
33 33
 		<span class="help-block">Select this option if you want timestamps to be stored in UTC.
34 34
 		If your application supports several time zones, you should select this option to store all dates in
35 35
 		the same time zone.</span>
Please login to merge, or discard this patch.
src/Mouf/Database/TDBM/PageIterator.php 1 patch
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -112,7 +112,7 @@
 block discarded – undo
112 112
 	 */
113 113
 	public function getCurrentPage()
114 114
 	{
115
-		return floor($this->offset / $this->limit) + 1;
115
+		return floor($this->offset/$this->limit)+1;
116 116
 	}
117 117
 
118 118
 	/**
Please login to merge, or discard this patch.
src/Mouf/Database/TDBM/AbstractTDBMObject.php 2 patches
Indentation   +17 added lines, -17 removed lines patch added patch discarded remove patch
@@ -547,23 +547,23 @@
 block discarded – undo
547 547
 		return $sql_where;
548 548
 	}
549 549
 
550
-    /**
551
-     * Override the native php clone function for TDBMObjects
552
-     */
553
-    public function __clone(){
554
-        $this->_dbLoadIfNotLoaded();
555
-        //First lets set the status to new (to enter the save function)
556
-        $this->status = TDBMObjectStateEnum::STATE_NEW;
557
-
558
-        // Add the current TDBMObject to the save object list
559
-        $this->tdbmService->_addToToSaveObjectList($this);
560
-
561
-        //Now unset the PK from the row
562
-        $pk_array = $this->tdbmService->getPrimaryKeyColumns($this->dbTableName);
563
-        foreach ($pk_array as $pk) {
564
-            $this->dbRow[$pk] = null;
565
-        }
566
-    }
550
+	/**
551
+	 * Override the native php clone function for TDBMObjects
552
+	 */
553
+	public function __clone(){
554
+		$this->_dbLoadIfNotLoaded();
555
+		//First lets set the status to new (to enter the save function)
556
+		$this->status = TDBMObjectStateEnum::STATE_NEW;
557
+
558
+		// Add the current TDBMObject to the save object list
559
+		$this->tdbmService->_addToToSaveObjectList($this);
560
+
561
+		//Now unset the PK from the row
562
+		$pk_array = $this->tdbmService->getPrimaryKeyColumns($this->dbTableName);
563
+		foreach ($pk_array as $pk) {
564
+			$this->dbRow[$pk] = null;
565
+		}
566
+	}
567 567
 
568 568
 	/**
569 569
 	 * Returns raw database rows.
Please login to merge, or discard this patch.
Spacing   +16 added lines, -16 removed lines patch added patch discarded remove patch
@@ -95,7 +95,7 @@  discard block
 block discarded – undo
95 95
 	 * @throws TDBMException
96 96
 	 * @throws TDBMInvalidOperationException
97 97
 	 */
98
-	public function __construct($tableName=null, array $primaryKeys=array(), TDBMService $tdbmService=null) {
98
+	public function __construct($tableName = null, array $primaryKeys = array(), TDBMService $tdbmService = null) {
99 99
 		// FIXME: lazy loading should be forbidden on tables with inheritance and dynamic type assignation...
100 100
 		if (!empty($tableName)) {
101 101
 			$this->dbRows[$tableName] = new DbRow($this, $tableName, $primaryKeys, $tdbmService);
@@ -199,7 +199,7 @@  discard block
 block discarded – undo
199 199
 	 * $status = TDBMObjectStateEnum::STATE_LOADED when the object is cached in memory.
200 200
 	 * @param string $state
201 201
 	 */
202
-	public function _setStatus($state){
202
+	public function _setStatus($state) {
203 203
 		$this->status = $state;
204 204
 
205 205
 		// TODO: we might ignore the loaded => dirty state here! dirty status comes from the db_row itself.
@@ -210,7 +210,7 @@  discard block
 block discarded – undo
210 210
 
211 211
 	public function get($var, $tableName = null) {
212 212
 		if ($tableName === null) {
213
-			if (count($this->dbRows) > 1) {
213
+			if (count($this->dbRows)>1) {
214 214
 				throw new TDBMException('This object is based on several tables. You must specify which table you are retrieving data from.');
215 215
 			} elseif (count($this->dbRows) === 1) {
216 216
 				$tableName = array_keys($this->dbRows)[0];
@@ -236,7 +236,7 @@  discard block
 block discarded – undo
236 236
 	 */
237 237
 	public function has($var, $tableName = null) {
238 238
 		if ($tableName === null) {
239
-			if (count($this->dbRows) > 1) {
239
+			if (count($this->dbRows)>1) {
240 240
 				throw new TDBMException('This object is based on several tables. You must specify which table you are retrieving data from.');
241 241
 			} elseif (count($this->dbRows) === 1) {
242 242
 				$tableName = array_keys($this->dbRows)[0];
@@ -256,7 +256,7 @@  discard block
 block discarded – undo
256 256
 	
257 257
 	public function set($var, $value, $tableName = null) {
258 258
 		if ($tableName === null) {
259
-			if (count($this->dbRows) > 1) {
259
+			if (count($this->dbRows)>1) {
260 260
 				throw new TDBMException('This object is based on several tables. You must specify which table you are retrieving data from.');
261 261
 			} elseif (count($this->dbRows) === 1) {
262 262
 				$tableName = array_keys($this->dbRows)[0];
@@ -281,7 +281,7 @@  discard block
 block discarded – undo
281 281
 	 */
282 282
 	public function setRef($foreignKeyName, AbstractTDBMObject $bean, $tableName = null) {
283 283
 		if ($tableName === null) {
284
-			if (count($this->dbRows) > 1) {
284
+			if (count($this->dbRows)>1) {
285 285
 				throw new TDBMException('This object is based on several tables. You must specify which table you are retrieving data from.');
286 286
 			} elseif (count($this->dbRows) === 1) {
287 287
 				$tableName = array_keys($this->dbRows)[0];
@@ -306,7 +306,7 @@  discard block
 block discarded – undo
306 306
 	 */
307 307
 	public function getRef($foreignKeyName, $tableName = null) {
308 308
 		if ($tableName === null) {
309
-			if (count($this->dbRows) > 1) {
309
+			if (count($this->dbRows)>1) {
310 310
 				throw new TDBMException('This object is based on several tables. You must specify which table you are retrieving data from.');
311 311
 			} elseif (count($this->dbRows) === 1) {
312 312
 				$tableName = array_keys($this->dbRows)[0];
@@ -421,13 +421,13 @@  discard block
 block discarded – undo
421 421
 	 */
422 422
 	private function setRelationship($pivotTableName, AbstractTDBMObject $remoteBean, $status) {
423 423
 		$storage = $this->getRelationshipStorage($pivotTableName);
424
-		$storage->attach($remoteBean, [ 'status' => $status, 'reverse' => false ]);
424
+		$storage->attach($remoteBean, ['status' => $status, 'reverse' => false]);
425 425
 		if ($this->status === TDBMObjectStateEnum::STATE_LOADED) {
426 426
 			$this->_setStatus(TDBMObjectStateEnum::STATE_DIRTY);
427 427
 		}
428 428
 
429 429
 		$remoteStorage = $remoteBean->getRelationshipStorage($pivotTableName);
430
-		$remoteStorage->attach($this, [ 'status' => $status, 'reverse' => true ]);
430
+		$remoteStorage->attach($this, ['status' => $status, 'reverse' => true]);
431 431
 	}
432 432
 
433 433
 	/**
@@ -496,7 +496,7 @@  discard block
 block discarded – undo
496 496
 	 * Implement the unique JsonSerializable method
497 497
 	 * @return array
498 498
 	 */
499
-	public function jsonSerialize(){
499
+	public function jsonSerialize() {
500 500
 		// FIXME
501 501
 		$this->_dbLoadIfNotLoaded();
502 502
 		return $this->dbRow;
@@ -526,23 +526,23 @@  discard block
 block discarded – undo
526 526
 	 *
527 527
 	 * @return string
528 528
 	 */
529
-	private function getPrimaryKeyWhereStatement () {
529
+	private function getPrimaryKeyWhereStatement() {
530 530
 		// Let's first get the primary keys
531 531
 		$pk_table = $this->tdbmService->getPrimaryKeyColumns($this->dbTableName);
532 532
 		// Now for the object_id
533 533
 		$object_id = $this->TDBMObject_id;
534 534
 		// If there is only one primary key:
535
-		if (count($pk_table)==1) {
535
+		if (count($pk_table) == 1) {
536 536
 			$sql_where = $this->db_connection->escapeDBItem($this->dbTableName).'.'.$this->db_connection->escapeDBItem($pk_table[0])."=".$this->db_connection->quoteSmart($this->TDBMObject_id);
537 537
 		} else {
538 538
 			$ids = unserialize($object_id);
539
-			$i=0;
539
+			$i = 0;
540 540
 			$sql_where_array = array();
541 541
 			foreach ($pk_table as $pk) {
542 542
 				$sql_where_array[] = $this->db_connection->escapeDBItem($this->dbTableName).'.'.$this->db_connection->escapeDBItem($pk)."=".$this->db_connection->quoteSmart($ids[$i]);
543 543
 				$i++;
544 544
 			}
545
-			$sql_where = implode(" AND ",$sql_where_array);
545
+			$sql_where = implode(" AND ", $sql_where_array);
546 546
 		}
547 547
 		return $sql_where;
548 548
 	}
@@ -550,7 +550,7 @@  discard block
 block discarded – undo
550 550
     /**
551 551
      * Override the native php clone function for TDBMObjects
552 552
      */
553
-    public function __clone(){
553
+    public function __clone() {
554 554
         $this->_dbLoadIfNotLoaded();
555 555
         //First lets set the status to new (to enter the save function)
556 556
         $this->status = TDBMObjectStateEnum::STATE_NEW;
@@ -577,7 +577,7 @@  discard block
 block discarded – undo
577 577
 	private function registerTable($tableName) {
578 578
 		$dbRow = new DbRow($this, $tableName);
579 579
 
580
-		if (in_array($this->status, [ TDBMObjectStateEnum::STATE_NOT_LOADED, TDBMObjectStateEnum::STATE_LOADED, TDBMObjectStateEnum::STATE_DIRTY ])) {
580
+		if (in_array($this->status, [TDBMObjectStateEnum::STATE_NOT_LOADED, TDBMObjectStateEnum::STATE_LOADED, TDBMObjectStateEnum::STATE_DIRTY])) {
581 581
 			// Let's get the primary key for the new table
582 582
 			$anotherDbRow = array_values($this->dbRows)[0];
583 583
 			/* @var $anotherDbRow DbRow */
Please login to merge, or discard this patch.
src/Mouf/Database/TDBM/TDBMService.php 2 patches
Indentation   +168 added lines, -168 removed lines patch added patch discarded remove patch
@@ -510,7 +510,7 @@  discard block
 block discarded – undo
510 510
 			case TDBMObjectStateEnum::STATE_DETACHED:
511 511
 				throw new TDBMInvalidOperationException('Cannot delete a detached object');
512 512
 			case TDBMObjectStateEnum::STATE_NEW:
513
-                $this->deleteManyToManyRelationships($object);
513
+				$this->deleteManyToManyRelationships($object);
514 514
 				foreach ($object->_getDbRows() as $dbRow) {
515 515
 					$this->removeFromToSaveObjectList($dbRow);
516 516
 				}
@@ -521,7 +521,7 @@  discard block
 block discarded – undo
521 521
 				}
522 522
 			case TDBMObjectStateEnum::STATE_NOT_LOADED:
523 523
 			case TDBMObjectStateEnum::STATE_LOADED:
524
-                $this->deleteManyToManyRelationships($object);
524
+				$this->deleteManyToManyRelationships($object);
525 525
 				// Let's delete db rows, in reverse order.
526 526
 				foreach (array_reverse($object->_getDbRows()) as $dbRow) {
527 527
 					$tableName = $dbRow->_getDbTableName();
@@ -541,63 +541,63 @@  discard block
 block discarded – undo
541 541
 		$object->_setStatus(TDBMObjectStateEnum::STATE_DELETED);
542 542
 	}
543 543
 
544
-    /**
545
-     * Removes all many to many relationships for this object.
546
-     * @param AbstractTDBMObject $object
547
-     */
548
-    private function deleteManyToManyRelationships(AbstractTDBMObject $object) {
549
-        foreach ($object->_getDbRows() as $tableName => $dbRow) {
550
-            $pivotTables = $this->tdbmSchemaAnalyzer->getPivotTableLinkedToTable($tableName);
551
-            foreach ($pivotTables as $pivotTable) {
552
-                $remoteBeans = $object->_getRelationships($pivotTable);
553
-                foreach ($remoteBeans as $remoteBean) {
554
-                    $object->_removeRelationship($pivotTable, $remoteBean);
555
-                }
556
-            }
557
-        }
558
-        $this->persistManyToManyRelationships($object);
559
-    }
560
-
561
-
562
-    /**
563
-     * This function removes the given object from the database. It will also remove all objects relied to the one given
564
-     * by parameter before all.
565
-     *
566
-     * Notice: if the object has a multiple primary key, the function will not work.
567
-     *
568
-     * @param AbstractTDBMObject $objToDelete
569
-     */
570
-    public function deleteCascade(AbstractTDBMObject $objToDelete) {
571
-        $this->deleteAllConstraintWithThisObject($objToDelete);
572
-        $this->delete($objToDelete);
573
-    }
574
-
575
-    /**
576
-     * This function is used only in TDBMService (private function)
577
-     * It will call deleteCascade function foreach object relied with a foreign key to the object given by parameter
578
-     *
579
-     * @param TDBMObject $obj
580
-     * @return TDBMObjectArray
581
-     */
582
-    private function deleteAllConstraintWithThisObject(TDBMObject $obj) {
583
-        $tableFrom = $this->connection->escapeDBItem($obj->_getDbTableName());
584
-        $constraints = $this->connection->getConstraintsFromTable($tableFrom);
585
-        foreach ($constraints as $constraint) {
586
-            $tableTo = $this->connection->escapeDBItem($constraint["table1"]);
587
-            $colFrom = $this->connection->escapeDBItem($constraint["col2"]);
588
-            $colTo = $this->connection->escapeDBItem($constraint["col1"]);
589
-            $idVarName = $this->connection->escapeDBItem($obj->getPrimaryKey()[0]);
590
-            $idValue = $this->connection->quoteSmart($obj->TDBMObject_id);
591
-            $sql = "SELECT DISTINCT ".$tableTo.".*"
592
-                    ." FROM ".$tableFrom
593
-                    ." LEFT JOIN ".$tableTo." ON ".$tableFrom.".".$colFrom." = ".$tableTo.".".$colTo
594
-                    ." WHERE ".$tableFrom.".".$idVarName."=".$idValue;
595
-            $result = $this->getObjectsFromSQL($constraint["table1"], $sql);
596
-            foreach ($result as $tdbmObj) {
597
-                $this->deleteCascade($tdbmObj);
598
-            }
599
-        }
600
-    }
544
+	/**
545
+	 * Removes all many to many relationships for this object.
546
+	 * @param AbstractTDBMObject $object
547
+	 */
548
+	private function deleteManyToManyRelationships(AbstractTDBMObject $object) {
549
+		foreach ($object->_getDbRows() as $tableName => $dbRow) {
550
+			$pivotTables = $this->tdbmSchemaAnalyzer->getPivotTableLinkedToTable($tableName);
551
+			foreach ($pivotTables as $pivotTable) {
552
+				$remoteBeans = $object->_getRelationships($pivotTable);
553
+				foreach ($remoteBeans as $remoteBean) {
554
+					$object->_removeRelationship($pivotTable, $remoteBean);
555
+				}
556
+			}
557
+		}
558
+		$this->persistManyToManyRelationships($object);
559
+	}
560
+
561
+
562
+	/**
563
+	 * This function removes the given object from the database. It will also remove all objects relied to the one given
564
+	 * by parameter before all.
565
+	 *
566
+	 * Notice: if the object has a multiple primary key, the function will not work.
567
+	 *
568
+	 * @param AbstractTDBMObject $objToDelete
569
+	 */
570
+	public function deleteCascade(AbstractTDBMObject $objToDelete) {
571
+		$this->deleteAllConstraintWithThisObject($objToDelete);
572
+		$this->delete($objToDelete);
573
+	}
574
+
575
+	/**
576
+	 * This function is used only in TDBMService (private function)
577
+	 * It will call deleteCascade function foreach object relied with a foreign key to the object given by parameter
578
+	 *
579
+	 * @param TDBMObject $obj
580
+	 * @return TDBMObjectArray
581
+	 */
582
+	private function deleteAllConstraintWithThisObject(TDBMObject $obj) {
583
+		$tableFrom = $this->connection->escapeDBItem($obj->_getDbTableName());
584
+		$constraints = $this->connection->getConstraintsFromTable($tableFrom);
585
+		foreach ($constraints as $constraint) {
586
+			$tableTo = $this->connection->escapeDBItem($constraint["table1"]);
587
+			$colFrom = $this->connection->escapeDBItem($constraint["col2"]);
588
+			$colTo = $this->connection->escapeDBItem($constraint["col1"]);
589
+			$idVarName = $this->connection->escapeDBItem($obj->getPrimaryKey()[0]);
590
+			$idValue = $this->connection->quoteSmart($obj->TDBMObject_id);
591
+			$sql = "SELECT DISTINCT ".$tableTo.".*"
592
+					." FROM ".$tableFrom
593
+					." LEFT JOIN ".$tableTo." ON ".$tableFrom.".".$colFrom." = ".$tableTo.".".$colTo
594
+					." WHERE ".$tableFrom.".".$idVarName."=".$idValue;
595
+			$result = $this->getObjectsFromSQL($constraint["table1"], $sql);
596
+			foreach ($result as $tdbmObj) {
597
+				$this->deleteCascade($tdbmObj);
598
+			}
599
+		}
600
+	}
601 601
 
602 602
 	/**
603 603
 	 * This function performs a save() of all the objects that have been modified.
@@ -997,8 +997,8 @@  discard block
 block discarded – undo
997 997
 	}
998 998
 
999 999
 	/**
1000
- 	* @param array<string, string> $tableToBeanMap
1001
- 	*/
1000
+	 * @param array<string, string> $tableToBeanMap
1001
+	 */
1002 1002
 	public function setTableToBeanMap(array $tableToBeanMap) {
1003 1003
 		$this->tableToBeanMap = $tableToBeanMap;
1004 1004
 	}
@@ -1045,7 +1045,7 @@  discard block
 block discarded – undo
1045 1045
 
1046 1046
 				// Let's save all references in NEW or DETACHED state (we need their primary key)
1047 1047
 				foreach ($references as $fkName => $reference) {
1048
-                    $refStatus = $reference->_getStatus();
1048
+					$refStatus = $reference->_getStatus();
1049 1049
 					if ($refStatus === TDBMObjectStateEnum::STATE_NEW || $refStatus === TDBMObjectStateEnum::STATE_DETACHED) {
1050 1050
 						$this->save($reference);
1051 1051
 					}
@@ -1204,94 +1204,94 @@  discard block
 block discarded – undo
1204 1204
 			throw new TDBMInvalidOperationException("This object has been deleted. It cannot be saved.");
1205 1205
 		}
1206 1206
 
1207
-        // Finally, let's save all the many to many relationships to this bean.
1208
-        $this->persistManyToManyRelationships($object);
1207
+		// Finally, let's save all the many to many relationships to this bean.
1208
+		$this->persistManyToManyRelationships($object);
1209 1209
 	}
1210 1210
 
1211
-    private function persistManyToManyRelationships(AbstractTDBMObject $object) {
1212
-        foreach ($object->_getCachedRelationships() as $pivotTableName => $storage) {
1213
-            $tableDescriptor = $this->tdbmSchemaAnalyzer->getSchema()->getTable($pivotTableName);
1214
-            list($localFk, $remoteFk) = $this->getPivotTableForeignKeys($pivotTableName, $object);
1215
-
1216
-            foreach ($storage as $remoteBean) {
1217
-                /* @var $remoteBean AbstractTDBMObject */
1218
-                $statusArr = $storage[$remoteBean];
1219
-                $status = $statusArr['status'];
1220
-                $reverse = $statusArr['reverse'];
1221
-                if ($reverse) {
1222
-                    continue;
1223
-                }
1224
-
1225
-                if ($status === 'new') {
1226
-                    $remoteBeanStatus = $remoteBean->_getStatus();
1227
-                    if ($remoteBeanStatus === TDBMObjectStateEnum::STATE_NEW || $remoteBeanStatus === TDBMObjectStateEnum::STATE_DETACHED) {
1228
-                        // Let's save remote bean if needed.
1229
-                        $this->save($remoteBean);
1230
-                    }
1211
+	private function persistManyToManyRelationships(AbstractTDBMObject $object) {
1212
+		foreach ($object->_getCachedRelationships() as $pivotTableName => $storage) {
1213
+			$tableDescriptor = $this->tdbmSchemaAnalyzer->getSchema()->getTable($pivotTableName);
1214
+			list($localFk, $remoteFk) = $this->getPivotTableForeignKeys($pivotTableName, $object);
1215
+
1216
+			foreach ($storage as $remoteBean) {
1217
+				/* @var $remoteBean AbstractTDBMObject */
1218
+				$statusArr = $storage[$remoteBean];
1219
+				$status = $statusArr['status'];
1220
+				$reverse = $statusArr['reverse'];
1221
+				if ($reverse) {
1222
+					continue;
1223
+				}
1231 1224
 
1232
-                    $filters = $this->getPivotFilters($object, $remoteBean, $localFk, $remoteFk);
1225
+				if ($status === 'new') {
1226
+					$remoteBeanStatus = $remoteBean->_getStatus();
1227
+					if ($remoteBeanStatus === TDBMObjectStateEnum::STATE_NEW || $remoteBeanStatus === TDBMObjectStateEnum::STATE_DETACHED) {
1228
+						// Let's save remote bean if needed.
1229
+						$this->save($remoteBean);
1230
+					}
1233 1231
 
1234
-                    $types = [];
1232
+					$filters = $this->getPivotFilters($object, $remoteBean, $localFk, $remoteFk);
1235 1233
 
1236
-                    foreach ($filters as $columnName => $value) {
1237
-                        $columnDescriptor = $tableDescriptor->getColumn($columnName);
1238
-                        $types[] = $columnDescriptor->getType();
1239
-                    }
1234
+					$types = [];
1235
+
1236
+					foreach ($filters as $columnName => $value) {
1237
+						$columnDescriptor = $tableDescriptor->getColumn($columnName);
1238
+						$types[] = $columnDescriptor->getType();
1239
+					}
1240 1240
 
1241
-                    $this->connection->insert($pivotTableName, $filters, $types);
1241
+					$this->connection->insert($pivotTableName, $filters, $types);
1242 1242
 
1243
-                    // Finally, let's mark relationships as saved.
1244
-                    $statusArr['status'] = 'loaded';
1245
-                    $storage[$remoteBean] = $statusArr;
1246
-                    $remoteStorage = $remoteBean->_getCachedRelationships()[$pivotTableName];
1247
-                    $remoteStatusArr = $remoteStorage[$object];
1248
-                    $remoteStatusArr['status'] = 'loaded';
1249
-                    $remoteStorage[$object] = $remoteStatusArr;
1243
+					// Finally, let's mark relationships as saved.
1244
+					$statusArr['status'] = 'loaded';
1245
+					$storage[$remoteBean] = $statusArr;
1246
+					$remoteStorage = $remoteBean->_getCachedRelationships()[$pivotTableName];
1247
+					$remoteStatusArr = $remoteStorage[$object];
1248
+					$remoteStatusArr['status'] = 'loaded';
1249
+					$remoteStorage[$object] = $remoteStatusArr;
1250 1250
 
1251
-                } elseif ($status === 'delete') {
1252
-                    $filters = $this->getPivotFilters($object, $remoteBean, $localFk, $remoteFk);
1251
+				} elseif ($status === 'delete') {
1252
+					$filters = $this->getPivotFilters($object, $remoteBean, $localFk, $remoteFk);
1253 1253
 
1254
-                    $types = [];
1254
+					$types = [];
1255 1255
 
1256
-                    foreach ($filters as $columnName => $value) {
1257
-                        $columnDescriptor = $tableDescriptor->getColumn($columnName);
1258
-                        $types[] = $columnDescriptor->getType();
1259
-                    }
1256
+					foreach ($filters as $columnName => $value) {
1257
+						$columnDescriptor = $tableDescriptor->getColumn($columnName);
1258
+						$types[] = $columnDescriptor->getType();
1259
+					}
1260
+
1261
+					$this->connection->delete($pivotTableName, $filters, $types);
1262
+
1263
+					// Finally, let's remove relationships completely from bean.
1264
+					$storage->detach($remoteBean);
1265
+					$remoteBean->_getCachedRelationships()[$pivotTableName]->detach($object);
1266
+				}
1267
+			}
1268
+		}
1269
+	}
1260 1270
 
1261
-                    $this->connection->delete($pivotTableName, $filters, $types);
1262
-
1263
-                    // Finally, let's remove relationships completely from bean.
1264
-                    $storage->detach($remoteBean);
1265
-                    $remoteBean->_getCachedRelationships()[$pivotTableName]->detach($object);
1266
-                }
1267
-            }
1268
-        }
1269
-    }
1270
-
1271
-    private function getPivotFilters(AbstractTDBMObject $localBean, AbstractTDBMObject $remoteBean, ForeignKeyConstraint $localFk, ForeignKeyConstraint $remoteFk) {
1272
-        $localBeanPk = $this->getPrimaryKeyValues($localBean);
1273
-        $remoteBeanPk = $this->getPrimaryKeyValues($remoteBean);
1274
-        $localColumns = $localFk->getLocalColumns();
1275
-        $remoteColumns = $remoteFk->getLocalColumns();
1276
-
1277
-        $localFilters = array_combine($localColumns, $localBeanPk);
1278
-        $remoteFilters = array_combine($remoteColumns, $remoteBeanPk);
1279
-
1280
-        return array_merge($localFilters, $remoteFilters);
1281
-    }
1282
-
1283
-    /**
1284
-     * Returns the "values" of the primary key.
1285
-     * This returns the primary key from the $primaryKey attribute, not the one stored in the columns.
1286
-     *
1287
-     * @param AbstractTDBMObject $bean
1288
-     * @return array numerically indexed array of values.
1289
-     */
1290
-    private function getPrimaryKeyValues(AbstractTDBMObject $bean) {
1291
-        $dbRows = $bean->_getDbRows();
1292
-        $dbRow = reset($dbRows);
1293
-        return array_values($dbRow->_getPrimaryKeys());
1294
-    }
1271
+	private function getPivotFilters(AbstractTDBMObject $localBean, AbstractTDBMObject $remoteBean, ForeignKeyConstraint $localFk, ForeignKeyConstraint $remoteFk) {
1272
+		$localBeanPk = $this->getPrimaryKeyValues($localBean);
1273
+		$remoteBeanPk = $this->getPrimaryKeyValues($remoteBean);
1274
+		$localColumns = $localFk->getLocalColumns();
1275
+		$remoteColumns = $remoteFk->getLocalColumns();
1276
+
1277
+		$localFilters = array_combine($localColumns, $localBeanPk);
1278
+		$remoteFilters = array_combine($remoteColumns, $remoteBeanPk);
1279
+
1280
+		return array_merge($localFilters, $remoteFilters);
1281
+	}
1282
+
1283
+	/**
1284
+	 * Returns the "values" of the primary key.
1285
+	 * This returns the primary key from the $primaryKey attribute, not the one stored in the columns.
1286
+	 *
1287
+	 * @param AbstractTDBMObject $bean
1288
+	 * @return array numerically indexed array of values.
1289
+	 */
1290
+	private function getPrimaryKeyValues(AbstractTDBMObject $bean) {
1291
+		$dbRows = $bean->_getDbRows();
1292
+		$dbRow = reset($dbRows);
1293
+		return array_values($dbRow->_getPrimaryKeys());
1294
+	}
1295 1295
 
1296 1296
 	/**
1297 1297
 	 * Returns a unique hash used to store the object based on its primary key.
@@ -1774,39 +1774,39 @@  discard block
 block discarded – undo
1774 1774
 	 */
1775 1775
 	public function _getRelatedBeans($pivotTableName, AbstractTDBMObject $bean) {
1776 1776
 
1777
-        list($localFk, $remoteFk) = $this->getPivotTableForeignKeys($pivotTableName, $bean);
1778
-        /* @var $localFk ForeignKeyConstraint */
1779
-        /* @var $remoteFk ForeignKeyConstraint */
1780
-        $remoteTable = $remoteFk->getForeignTableName();
1777
+		list($localFk, $remoteFk) = $this->getPivotTableForeignKeys($pivotTableName, $bean);
1778
+		/* @var $localFk ForeignKeyConstraint */
1779
+		/* @var $remoteFk ForeignKeyConstraint */
1780
+		$remoteTable = $remoteFk->getForeignTableName();
1781 1781
 
1782 1782
 
1783
-        $primaryKeys = $this->getPrimaryKeyValues($bean);
1784
-        $columnNames = array_map(function($name) use ($pivotTableName) { return $pivotTableName.'.'.$name; }, $localFk->getLocalColumns());
1783
+		$primaryKeys = $this->getPrimaryKeyValues($bean);
1784
+		$columnNames = array_map(function($name) use ($pivotTableName) { return $pivotTableName.'.'.$name; }, $localFk->getLocalColumns());
1785 1785
 
1786
-        $filter = array_combine($columnNames, $primaryKeys);
1786
+		$filter = array_combine($columnNames, $primaryKeys);
1787 1787
 
1788
-        return $this->findObjects($remoteTable, $filter);
1788
+		return $this->findObjects($remoteTable, $filter);
1789 1789
 	}
1790 1790
 
1791
-    /**
1792
-     * @param $pivotTableName
1793
-     * @param AbstractTDBMObject $bean The LOCAL bean
1794
-     * @return ForeignKeyConstraint[] First item: the LOCAL bean, second item: the REMOTE bean.
1795
-     * @throws TDBMException
1796
-     */
1797
-    private function getPivotTableForeignKeys($pivotTableName, AbstractTDBMObject $bean) {
1798
-        $fks = array_values($this->tdbmSchemaAnalyzer->getSchema()->getTable($pivotTableName)->getForeignKeys());
1799
-        $table1 = $fks[0]->getForeignTableName();
1800
-        $table2 = $fks[1]->getForeignTableName();
1801
-
1802
-        $beanTables = array_map(function(DbRow $dbRow) { return $dbRow->_getDbTableName(); }, $bean->_getDbRows());
1803
-
1804
-        if (in_array($table1, $beanTables)) {
1805
-            return [$fks[0], $fks[1]];
1806
-        } elseif (in_array($table2, $beanTables)) {
1807
-            return [$fks[1], $fks[0]];
1808
-        } else {
1809
-            throw new TDBMException("Unexpected bean type in getPivotTableForeignKeys. Awaiting beans from table {$table1} and {$table2}");
1810
-        }
1811
-    }
1791
+	/**
1792
+	 * @param $pivotTableName
1793
+	 * @param AbstractTDBMObject $bean The LOCAL bean
1794
+	 * @return ForeignKeyConstraint[] First item: the LOCAL bean, second item: the REMOTE bean.
1795
+	 * @throws TDBMException
1796
+	 */
1797
+	private function getPivotTableForeignKeys($pivotTableName, AbstractTDBMObject $bean) {
1798
+		$fks = array_values($this->tdbmSchemaAnalyzer->getSchema()->getTable($pivotTableName)->getForeignKeys());
1799
+		$table1 = $fks[0]->getForeignTableName();
1800
+		$table2 = $fks[1]->getForeignTableName();
1801
+
1802
+		$beanTables = array_map(function(DbRow $dbRow) { return $dbRow->_getDbTableName(); }, $bean->_getDbRows());
1803
+
1804
+		if (in_array($table1, $beanTables)) {
1805
+			return [$fks[0], $fks[1]];
1806
+		} elseif (in_array($table2, $beanTables)) {
1807
+			return [$fks[1], $fks[0]];
1808
+		} else {
1809
+			throw new TDBMException("Unexpected bean type in getPivotTableForeignKeys. Awaiting beans from table {$table1} and {$table2}");
1810
+		}
1811
+	}
1812 1812
 }
Please login to merge, or discard this patch.
Spacing   +15 added lines, -15 removed lines patch added patch discarded remove patch
@@ -430,7 +430,7 @@  discard block
 block discarded – undo
430 430
 	 * @param string $className Optional: The name of the class to instanciate. This class must extend the TDBMObject class. If none is specified, a TDBMObject instance will be returned.
431 431
 	 * @return TDBMObject
432 432
 	 */
433
-	public function getNewObject($table_name, $auto_assign_id=true, $className = null) {
433
+	public function getNewObject($table_name, $auto_assign_id = true, $className = null) {
434 434
 		if ($this->connection == null) {
435 435
 			throw new TDBMException("Error while calling TDBMObject::getNewObject(): No connection has been established on the database!");
436 436
 		}
@@ -464,8 +464,8 @@  discard block
 block discarded – undo
464 464
 		$object = new $className($this, $table_name);
465 465
 
466 466
 		if ($auto_assign_id && !$this->isPrimaryKeyAutoIncrement($table_name)) {
467
-			$pk_table =  $this->getPrimaryKeyColumns($table_name);
468
-			if (count($pk_table)==1)
467
+			$pk_table = $this->getPrimaryKeyColumns($table_name);
468
+			if (count($pk_table) == 1)
469 469
 			{
470 470
 				$root_table = $this->connection->findRootSequenceTable($table_name);
471 471
 				$id = $this->connection->nextId($root_table);
@@ -475,7 +475,7 @@  discard block
 block discarded – undo
475 475
 					$sql = "SELECT MAX(".$this->connection->escapeDBItem($pk_table[0]).") AS maxkey FROM ".$root_table;
476 476
 					$res = $this->connection->getAll($sql);
477 477
 					// NOTE: this will work only if the ID is an integer!
478
-					$newid = $res[0]['maxkey'] + 1;
478
+					$newid = $res[0]['maxkey']+1;
479 479
 					if ($newid>$id) {
480 480
 						$id = $newid;
481 481
 					}
@@ -892,9 +892,9 @@  discard block
 block discarded – undo
892 892
 		// 4-2, let's take all the objects out of the orderby bag, and let's make objects from them
893 893
 		$orderby_bag2 = array();
894 894
 		foreach ($orderby_bag as $thing) {
895
-			if (is_a($thing,'Mouf\\Database\\TDBM\\Filters\\OrderBySQLString')) {
895
+			if (is_a($thing, 'Mouf\\Database\\TDBM\\Filters\\OrderBySQLString')) {
896 896
 				$orderby_bag2[] = $thing;
897
-			} elseif (is_a($thing,'Mouf\\Database\\TDBM\\Filters\\OrderByColumn')) {
897
+			} elseif (is_a($thing, 'Mouf\\Database\\TDBM\\Filters\\OrderByColumn')) {
898 898
 				$orderby_bag2[] = $thing;
899 899
 			} elseif (is_string($thing)) {
900 900
 				$orderby_bag2[] = new OrderBySQLString($thing);
@@ -1405,7 +1405,7 @@  discard block
 block discarded – undo
1405 1405
 		$schemaAnalyzer = $this->schemaAnalyzer;
1406 1406
 
1407 1407
 		foreach ($tables as $currentTable) {
1408
-			$allParents = [ $currentTable ];
1408
+			$allParents = [$currentTable];
1409 1409
 			$currentFk = null;
1410 1410
 			while ($currentFk = $schemaAnalyzer->getParentRelationship($currentTable)) {
1411 1411
 				$currentTable = $currentFk->getForeignTableName();
@@ -1447,7 +1447,7 @@  discard block
 block discarded – undo
1447 1447
 		// Let's scan the parent tables
1448 1448
 		$currentTable = $table;
1449 1449
 
1450
-		$parentTables = [ ];
1450
+		$parentTables = [];
1451 1451
 
1452 1452
 		// Get parent relationship
1453 1453
 		while ($currentFk = $schemaAnalyzer->getParentRelationship($currentTable)) {
@@ -1538,7 +1538,7 @@  discard block
 block discarded – undo
1538 1538
 	 * @return ResultIterator An object representing an array of results.
1539 1539
 	 * @throws TDBMException
1540 1540
 	 */
1541
-	public function findObjects($mainTable, $filter=null, array $parameters = array(), $orderString=null, array $additionalTablesFetch = array(), $mode = null, $className=null) {
1541
+	public function findObjects($mainTable, $filter = null, array $parameters = array(), $orderString = null, array $additionalTablesFetch = array(), $mode = null, $className = null) {
1542 1542
 		// $mainTable is not secured in MagicJoin, let's add a bit of security to avoid SQL injection.
1543 1543
 		if (!preg_match('/^[a-zA-Z_][a-zA-Z0-9_]*$/', $mainTable)) {
1544 1544
 			throw new TDBMException(sprintf("Invalid table name: '%s'", $mainTable));
@@ -1607,7 +1607,7 @@  discard block
 block discarded – undo
1607 1607
 			throw new TDBMException("Unknown fetch mode: '".$this->mode."'");
1608 1608
 		}
1609 1609
 
1610
-		$mode = $mode?:$this->mode;
1610
+		$mode = $mode ?: $this->mode;
1611 1611
 
1612 1612
 		return new ResultIterator($sql, $countSql, $parameters, $columnDescList, $this->objectStorage, $className, $this, $this->magicQuery, $mode);
1613 1613
 	}
@@ -1621,7 +1621,7 @@  discard block
 block discarded – undo
1621 1621
 	 * @return AbstractTDBMObject
1622 1622
 	 * @throws TDBMException
1623 1623
 	 */
1624
-	public function findObjectByPk($table, array $primaryKeys, array $additionalTablesFetch = array(), $lazy = false, $className=null) {
1624
+	public function findObjectByPk($table, array $primaryKeys, array $additionalTablesFetch = array(), $lazy = false, $className = null) {
1625 1625
 		$primaryKeys = $this->_getPrimaryKeysFromObjectData($table, $primaryKeys);
1626 1626
 		$hash = $this->getObjectHash($primaryKeys);
1627 1627
 
@@ -1641,7 +1641,7 @@  discard block
 block discarded – undo
1641 1641
 			// Only allowed if no inheritance.
1642 1642
 			if (count($tables) === 1) {
1643 1643
 				if ($className === null) {
1644
-					$className = isset($this->tableToBeanMap[$table])?$this->tableToBeanMap[$table]:"Mouf\\Database\\TDBM\\TDBMObject";
1644
+					$className = isset($this->tableToBeanMap[$table]) ? $this->tableToBeanMap[$table] : "Mouf\\Database\\TDBM\\TDBMObject";
1645 1645
 				}
1646 1646
 
1647 1647
 				// Let's construct the bean
@@ -1670,11 +1670,11 @@  discard block
 block discarded – undo
1670 1670
 	 * @return AbstractTDBMObject|null The object we want, or null if no object matches the filters.
1671 1671
 	 * @throws TDBMException
1672 1672
 	 */
1673
-	public function findObject($mainTable, $filterString=null, array $parameters = array(), array $additionalTablesFetch = array(), $className = null) {
1673
+	public function findObject($mainTable, $filterString = null, array $parameters = array(), array $additionalTablesFetch = array(), $className = null) {
1674 1674
 		$objects = $this->findObjects($mainTable, $filterString, $parameters, null, $additionalTablesFetch, self::MODE_ARRAY, $className);
1675 1675
 		$page = $objects->take(0, 2);
1676 1676
 		$count = $page->count();
1677
-		if ($count > 1) {
1677
+		if ($count>1) {
1678 1678
 			throw new DuplicateRowException("Error while querying an object for table '$mainTable': More than 1 row have been returned, but we should have received at most one.");
1679 1679
 		} elseif ($count === 0) {
1680 1680
 			return null;
@@ -1694,7 +1694,7 @@  discard block
 block discarded – undo
1694 1694
 	 * @return AbstractTDBMObject The object we want
1695 1695
 	 * @throws TDBMException
1696 1696
 	 */
1697
-	public function findObjectOrFail($mainTable, $filterString=null, array $parameters = array(), array $additionalTablesFetch = array(), $className = null) {
1697
+	public function findObjectOrFail($mainTable, $filterString = null, array $parameters = array(), array $additionalTablesFetch = array(), $className = null) {
1698 1698
 		$bean = $this->findObject($mainTable, $filterString, $parameters, $additionalTablesFetch, $className);
1699 1699
 		if ($bean === null) {
1700 1700
 			throw new NoBeanFoundException("No result found for query on table '".$mainTable."'");
Please login to merge, or discard this patch.
src/Mouf/Database/TDBM/TDBMObject.php 2 patches
Indentation   +113 added lines, -113 removed lines patch added patch discarded remove patch
@@ -35,117 +35,117 @@
 block discarded – undo
35 35
 class TDBMObject extends AbstractTDBMObject implements \ArrayAccess, \Iterator
36 36
 {
37 37
 
38
-    public function __get($var)
39
-    {
40
-        return $this->get($var);
41
-    }
42
-
43
-    /**
44
-     * Returns true if a column is set, false otherwise.
45
-     *
46
-     * @param string $var
47
-     * @return boolean
48
-     */
49
-    public function __isset($var)
50
-    {
51
-        return $this->has($var);
52
-    }
53
-
54
-    public function __set($var, $value)
55
-    {
56
-        $this->set($var, $value);
57
-    }
58
-
59
-    /**
60
-     * Implements array behaviour for our object.
61
-     *
62
-     * @param string $offset
63
-     * @param string $value
64
-     */
65
-    public function offsetSet($offset, $value)
66
-    {
67
-        $this->__set($offset, $value);
68
-    }
69
-
70
-    /**
71
-     * Implements array behaviour for our object.
72
-     *
73
-     * @param string $offset
74
-     * @return bool
75
-     */
76
-    public function offsetExists($offset)
77
-    {
78
-        $this->_dbLoadIfNotLoaded();
79
-        return isset($this->dbRow[$offset]);
80
-    }
81
-
82
-    /**
83
-     * Implements array behaviour for our object.
84
-     *
85
-     * @param string $offset
86
-     */
87
-    public function offsetUnset($offset)
88
-    {
89
-        $this->__set($offset, null);
90
-    }
91
-
92
-    /**
93
-     * Implements array behaviour for our object.
94
-     *
95
-     * @param string $offset
96
-     * @return mixed|null
97
-     */
98
-    public function offsetGet($offset)
99
-    {
100
-        return $this->__get($offset);
101
-    }
102
-
103
-    private $_validIterator = false;
104
-
105
-    /**
106
-     * Implements iterator behaviour for our object (so we can each column).
107
-     */
108
-    public function rewind()
109
-    {
110
-        $this->_dbLoadIfNotLoaded();
111
-        if (count($this->dbRow) > 0) {
112
-            $this->_validIterator = true;
113
-        } else {
114
-            $this->_validIterator = false;
115
-        }
116
-        reset($this->dbRow);
117
-    }
118
-
119
-    /**
120
-     * Implements iterator behaviour for our object (so we can each column).
121
-     */
122
-    public function next()
123
-    {
124
-        $val = next($this->dbRow);
125
-        $this->_validIterator = !($val === false);
126
-    }
127
-
128
-    /**
129
-     * Implements iterator behaviour for our object (so we can each column).
130
-     */
131
-    public function key()
132
-    {
133
-        return key($this->dbRow);
134
-    }
135
-
136
-    /**
137
-     * Implements iterator behaviour for our object (so we can each column).
138
-     */
139
-    public function current()
140
-    {
141
-        return current($this->dbRow);
142
-    }
143
-
144
-    /**
145
-     * Implements iterator behaviour for our object (so we can each column).
146
-     */
147
-    public function valid()
148
-    {
149
-        return $this->_validIterator;
150
-    }
38
+	public function __get($var)
39
+	{
40
+		return $this->get($var);
41
+	}
42
+
43
+	/**
44
+	 * Returns true if a column is set, false otherwise.
45
+	 *
46
+	 * @param string $var
47
+	 * @return boolean
48
+	 */
49
+	public function __isset($var)
50
+	{
51
+		return $this->has($var);
52
+	}
53
+
54
+	public function __set($var, $value)
55
+	{
56
+		$this->set($var, $value);
57
+	}
58
+
59
+	/**
60
+	 * Implements array behaviour for our object.
61
+	 *
62
+	 * @param string $offset
63
+	 * @param string $value
64
+	 */
65
+	public function offsetSet($offset, $value)
66
+	{
67
+		$this->__set($offset, $value);
68
+	}
69
+
70
+	/**
71
+	 * Implements array behaviour for our object.
72
+	 *
73
+	 * @param string $offset
74
+	 * @return bool
75
+	 */
76
+	public function offsetExists($offset)
77
+	{
78
+		$this->_dbLoadIfNotLoaded();
79
+		return isset($this->dbRow[$offset]);
80
+	}
81
+
82
+	/**
83
+	 * Implements array behaviour for our object.
84
+	 *
85
+	 * @param string $offset
86
+	 */
87
+	public function offsetUnset($offset)
88
+	{
89
+		$this->__set($offset, null);
90
+	}
91
+
92
+	/**
93
+	 * Implements array behaviour for our object.
94
+	 *
95
+	 * @param string $offset
96
+	 * @return mixed|null
97
+	 */
98
+	public function offsetGet($offset)
99
+	{
100
+		return $this->__get($offset);
101
+	}
102
+
103
+	private $_validIterator = false;
104
+
105
+	/**
106
+	 * Implements iterator behaviour for our object (so we can each column).
107
+	 */
108
+	public function rewind()
109
+	{
110
+		$this->_dbLoadIfNotLoaded();
111
+		if (count($this->dbRow) > 0) {
112
+			$this->_validIterator = true;
113
+		} else {
114
+			$this->_validIterator = false;
115
+		}
116
+		reset($this->dbRow);
117
+	}
118
+
119
+	/**
120
+	 * Implements iterator behaviour for our object (so we can each column).
121
+	 */
122
+	public function next()
123
+	{
124
+		$val = next($this->dbRow);
125
+		$this->_validIterator = !($val === false);
126
+	}
127
+
128
+	/**
129
+	 * Implements iterator behaviour for our object (so we can each column).
130
+	 */
131
+	public function key()
132
+	{
133
+		return key($this->dbRow);
134
+	}
135
+
136
+	/**
137
+	 * Implements iterator behaviour for our object (so we can each column).
138
+	 */
139
+	public function current()
140
+	{
141
+		return current($this->dbRow);
142
+	}
143
+
144
+	/**
145
+	 * Implements iterator behaviour for our object (so we can each column).
146
+	 */
147
+	public function valid()
148
+	{
149
+		return $this->_validIterator;
150
+	}
151 151
 }
152 152
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -108,7 +108,7 @@
 block discarded – undo
108 108
     public function rewind()
109 109
     {
110 110
         $this->_dbLoadIfNotLoaded();
111
-        if (count($this->dbRow) > 0) {
111
+        if (count($this->dbRow)>0) {
112 112
             $this->_validIterator = true;
113 113
         } else {
114 114
             $this->_validIterator = false;
Please login to merge, or discard this patch.
src/Mouf/Database/TDBM/TDBMSchemaAnalyzer.php 1 patch
Indentation   +79 added lines, -79 removed lines patch added patch discarded remove patch
@@ -15,96 +15,96 @@
 block discarded – undo
15 15
 class TDBMSchemaAnalyzer
16 16
 {
17 17
 
18
-    private $connection;
18
+	private $connection;
19 19
 
20
-    /**
21
-     * @var Schema
22
-     */
23
-    private $schema;
20
+	/**
21
+	 * @var Schema
22
+	 */
23
+	private $schema;
24 24
 
25
-    /**
26
-     * @var string
27
-     */
28
-    private $cachePrefix;
25
+	/**
26
+	 * @var string
27
+	 */
28
+	private $cachePrefix;
29 29
 
30
-    /**
31
-     * @var Cache
32
-     */
33
-    private $cache;
30
+	/**
31
+	 * @var Cache
32
+	 */
33
+	private $cache;
34 34
 
35
-    /**
36
-     * @var SchemaAnalyzer
37
-     */
38
-    private $schemaAnalyzer;
35
+	/**
36
+	 * @var SchemaAnalyzer
37
+	 */
38
+	private $schemaAnalyzer;
39 39
 
40
-    /**
41
-     * @param Connection $connection The DBAL DB connection to use
42
-     * @param Cache $cache A cache service to be used
43
-     * @param SchemaAnalyzer $schemaAnalyzer The schema analyzer that will be used to find shortest paths...
44
-     * 										 Will be automatically created if not passed.
45
-     */
46
-    public function __construct(Connection $connection, Cache $cache, SchemaAnalyzer $schemaAnalyzer) {
47
-        $this->connection = $connection;
48
-        $this->cache = $cache;
49
-        $this->schemaAnalyzer = $schemaAnalyzer;
50
-    }
40
+	/**
41
+	 * @param Connection $connection The DBAL DB connection to use
42
+	 * @param Cache $cache A cache service to be used
43
+	 * @param SchemaAnalyzer $schemaAnalyzer The schema analyzer that will be used to find shortest paths...
44
+	 * 										 Will be automatically created if not passed.
45
+	 */
46
+	public function __construct(Connection $connection, Cache $cache, SchemaAnalyzer $schemaAnalyzer) {
47
+		$this->connection = $connection;
48
+		$this->cache = $cache;
49
+		$this->schemaAnalyzer = $schemaAnalyzer;
50
+	}
51 51
 
52
-    /**
53
-     * Returns a unique ID for the current connection. Useful for namespacing cache entries in the current connection.
54
-     * @return string
55
-     */
56
-    public function getCachePrefix() {
57
-        if ($this->cachePrefix === null) {
58
-            $this->cachePrefix = hash('md4', $this->connection->getHost()."-".$this->connection->getPort()."-".$this->connection->getDatabase()."-".$this->connection->getDriver()->getName());
59
-        }
60
-        return $this->cachePrefix;
61
-    }
52
+	/**
53
+	 * Returns a unique ID for the current connection. Useful for namespacing cache entries in the current connection.
54
+	 * @return string
55
+	 */
56
+	public function getCachePrefix() {
57
+		if ($this->cachePrefix === null) {
58
+			$this->cachePrefix = hash('md4', $this->connection->getHost()."-".$this->connection->getPort()."-".$this->connection->getDatabase()."-".$this->connection->getDriver()->getName());
59
+		}
60
+		return $this->cachePrefix;
61
+	}
62 62
 
63
-    /**
64
-     * Returns the (cached) schema.
65
-     *
66
-     * @return Schema
67
-     */
68
-    public function getSchema() {
69
-        if ($this->schema === null) {
70
-            $cacheKey = $this->getCachePrefix().'_schema';
71
-            if ($this->cache->contains($cacheKey)) {
72
-                $this->schema = $this->cache->fetch($cacheKey);
73
-            } else {
74
-                $this->schema = $this->connection->getSchemaManager()->createSchema();
75
-                $this->cache->save($cacheKey, $this->schema);
76
-            }
77
-        }
78
-        return $this->schema;
79
-    }
63
+	/**
64
+	 * Returns the (cached) schema.
65
+	 *
66
+	 * @return Schema
67
+	 */
68
+	public function getSchema() {
69
+		if ($this->schema === null) {
70
+			$cacheKey = $this->getCachePrefix().'_schema';
71
+			if ($this->cache->contains($cacheKey)) {
72
+				$this->schema = $this->cache->fetch($cacheKey);
73
+			} else {
74
+				$this->schema = $this->connection->getSchemaManager()->createSchema();
75
+				$this->cache->save($cacheKey, $this->schema);
76
+			}
77
+		}
78
+		return $this->schema;
79
+	}
80 80
 
81
-    /**
82
-     * Returns the list of pivot tables linked to table $tableName
83
-     * @param string $tableName
84
-     * @return array|string[]
85
-     */
86
-    public function getPivotTableLinkedToTable($tableName) {
87
-        $cacheKey = $this->getCachePrefix().'_pivottables_link';
88
-        if ($this->cache->contains($cacheKey)) {
89
-            return $this->cache->fetch($cacheKey);
90
-        }
81
+	/**
82
+	 * Returns the list of pivot tables linked to table $tableName
83
+	 * @param string $tableName
84
+	 * @return array|string[]
85
+	 */
86
+	public function getPivotTableLinkedToTable($tableName) {
87
+		$cacheKey = $this->getCachePrefix().'_pivottables_link';
88
+		if ($this->cache->contains($cacheKey)) {
89
+			return $this->cache->fetch($cacheKey);
90
+		}
91 91
 
92
-        $pivotTables = [];
92
+		$pivotTables = [];
93 93
 
94
-        $junctionTables = $this->schemaAnalyzer->detectJunctionTables();
95
-        foreach ($junctionTables as $table) {
96
-            $fks = $table->getForeignKeys();
97
-            foreach ($fks as $fk) {
98
-                if ($fk->getForeignTableName() == $tableName) {
99
-                    $pivotTables[] = $table->getName();
100
-                    break;
101
-                }
102
-            }
103
-        }
94
+		$junctionTables = $this->schemaAnalyzer->detectJunctionTables();
95
+		foreach ($junctionTables as $table) {
96
+			$fks = $table->getForeignKeys();
97
+			foreach ($fks as $fk) {
98
+				if ($fk->getForeignTableName() == $tableName) {
99
+					$pivotTables[] = $table->getName();
100
+					break;
101
+				}
102
+			}
103
+		}
104 104
 
105
-        $this->cache->save($cacheKey, $pivotTables);
106
-        return $pivotTables;
107
-    }
105
+		$this->cache->save($cacheKey, $pivotTables);
106
+		return $pivotTables;
107
+	}
108 108
 
109 109
 
110 110
 }
Please login to merge, or discard this patch.
src/Mouf/Database/TDBM/Utils/ObjectBeanPropertyDescriptor.php 2 patches
Indentation   +118 added lines, -118 removed lines patch added patch discarded remove patch
@@ -14,122 +14,122 @@  discard block
 block discarded – undo
14 14
 class ObjectBeanPropertyDescriptor extends AbstractBeanPropertyDescriptor
15 15
 {
16 16
 
17
-    /**
18
-     * @var ForeignKeyConstraint
19
-     */
20
-    private $foreignKey;
21
-
22
-    /**
23
-     * @var SchemaAnalyzer
24
-     */
25
-    private $schemaAnalyzer;
26
-
27
-    public function __construct(Table $table, ForeignKeyConstraint $foreignKey, SchemaAnalyzer $schemaAnalyzer) {
28
-        parent::__construct($table);
29
-        $this->foreignKey = $foreignKey;
30
-        $this->schemaAnalyzer = $schemaAnalyzer;
31
-    }
32
-
33
-
34
-
35
-    /**
36
-     * Returns the foreignkey the column is part of, if any. null otherwise.
37
-     *
38
-     * @return ForeignKeyConstraint|null
39
-     */
40
-    public function getForeignKey() {
41
-        return $this->foreignKey;
42
-    }
43
-
44
-    /**
45
-     * Returns the name of the class linked to this property or null if this is not a foreign key
46
-     * @return null|string
47
-     */
48
-    public function getClassName() {
49
-        return TDBMDaoGenerator::getBeanNameFromTableName($this->foreignKey->getForeignTableName());
50
-    }
51
-
52
-    /**
53
-     * Returns the param annotation for this property (useful for constructor).
54
-     *
55
-     * @return string
56
-     */
57
-    public function getParamAnnotation() {
58
-        $str = "     * @param %s %s";
59
-        return sprintf($str, $this->getClassName(), $this->getVariableName());
60
-    }
61
-
62
-    public function getUpperCamelCaseName() {
63
-        // First, are there many column or only one?
64
-        // If one column, we name the setter after it. Otherwise, we name the setter after the table name
65
-        if (count($this->foreignKey->getLocalColumns()) > 1) {
66
-            $name = TDBMDaoGenerator::toSingular(TDBMDaoGenerator::toCamelCase($this->foreignKey->getForeignTableName()));
67
-            if ($this->alternativeName) {
68
-                $camelizedColumns = array_map(['Mouf\\Database\\TDBM\\Utils\\TDBMDaoGenerator', 'toCamelCase'], $this->foreignKey->getLocalColumns());
69
-
70
-                $name .= 'By'.implode('And', $camelizedColumns);
71
-            }
72
-        } else {
73
-            $column = $this->foreignKey->getLocalColumns()[0];
74
-            // Let's remove any _id or id_.
75
-            if (strpos(strtolower($column), "id_") === 0) {
76
-                $column = substr($column, 3);
77
-            }
78
-            if (strrpos(strtolower($column), "_id") === strlen($column)-3) {
79
-                $column = substr($column, 0, strlen($column)-3);
80
-            }
81
-            $name = TDBMDaoGenerator::toCamelCase($column);
82
-            if ($this->alternativeName) {
83
-                $name .= 'Object';
84
-            }
85
-        }
86
-        return $name;
87
-    }
88
-
89
-    /**
90
-     * Returns true if the property is compulsory (and therefore should be fetched in the constructor).
91
-     * @return bool
92
-     */
93
-    public function isCompulsory() {
94
-        // Are all columns nullable?
95
-        $localColumnNames = $this->foreignKey->getLocalColumns();
96
-
97
-        foreach ($localColumnNames as $name) {
98
-            $column = $this->table->getColumn($name);
99
-            if ($column->getNotnull()) {
100
-                return true;
101
-            }
102
-        }
103
-
104
-        return false;
105
-    }
106
-
107
-    /**
108
-     * Returns true if the property is the primary key
109
-     * @return bool
110
-     */
111
-    public function isPrimaryKey() {
112
-        $fkColumns = $this->foreignKey->getLocalColumns();
113
-        sort($fkColumns);
114
-
115
-        $pkColumns = $this->table->getPrimaryKeyColumns();
116
-        sort($pkColumns);
117
-
118
-        return $fkColumns == $pkColumns;
119
-    }
120
-
121
-    /**
122
-     * Returns the PHP code for getters and setters
123
-     * @return string
124
-     */
125
-    public function getGetterSetterCode() {
126
-        $tableName = $this->table->getName();
127
-        $getterName = $this->getGetterName();
128
-        $setterName = $this->getSetterName();
129
-
130
-        $referencedBeanName = TDBMDaoGenerator::getBeanNameFromTableName($this->foreignKey->getForeignTableName());
131
-
132
-        $str = '    /**
17
+	/**
18
+	 * @var ForeignKeyConstraint
19
+	 */
20
+	private $foreignKey;
21
+
22
+	/**
23
+	 * @var SchemaAnalyzer
24
+	 */
25
+	private $schemaAnalyzer;
26
+
27
+	public function __construct(Table $table, ForeignKeyConstraint $foreignKey, SchemaAnalyzer $schemaAnalyzer) {
28
+		parent::__construct($table);
29
+		$this->foreignKey = $foreignKey;
30
+		$this->schemaAnalyzer = $schemaAnalyzer;
31
+	}
32
+
33
+
34
+
35
+	/**
36
+	 * Returns the foreignkey the column is part of, if any. null otherwise.
37
+	 *
38
+	 * @return ForeignKeyConstraint|null
39
+	 */
40
+	public function getForeignKey() {
41
+		return $this->foreignKey;
42
+	}
43
+
44
+	/**
45
+	 * Returns the name of the class linked to this property or null if this is not a foreign key
46
+	 * @return null|string
47
+	 */
48
+	public function getClassName() {
49
+		return TDBMDaoGenerator::getBeanNameFromTableName($this->foreignKey->getForeignTableName());
50
+	}
51
+
52
+	/**
53
+	 * Returns the param annotation for this property (useful for constructor).
54
+	 *
55
+	 * @return string
56
+	 */
57
+	public function getParamAnnotation() {
58
+		$str = "     * @param %s %s";
59
+		return sprintf($str, $this->getClassName(), $this->getVariableName());
60
+	}
61
+
62
+	public function getUpperCamelCaseName() {
63
+		// First, are there many column or only one?
64
+		// If one column, we name the setter after it. Otherwise, we name the setter after the table name
65
+		if (count($this->foreignKey->getLocalColumns()) > 1) {
66
+			$name = TDBMDaoGenerator::toSingular(TDBMDaoGenerator::toCamelCase($this->foreignKey->getForeignTableName()));
67
+			if ($this->alternativeName) {
68
+				$camelizedColumns = array_map(['Mouf\\Database\\TDBM\\Utils\\TDBMDaoGenerator', 'toCamelCase'], $this->foreignKey->getLocalColumns());
69
+
70
+				$name .= 'By'.implode('And', $camelizedColumns);
71
+			}
72
+		} else {
73
+			$column = $this->foreignKey->getLocalColumns()[0];
74
+			// Let's remove any _id or id_.
75
+			if (strpos(strtolower($column), "id_") === 0) {
76
+				$column = substr($column, 3);
77
+			}
78
+			if (strrpos(strtolower($column), "_id") === strlen($column)-3) {
79
+				$column = substr($column, 0, strlen($column)-3);
80
+			}
81
+			$name = TDBMDaoGenerator::toCamelCase($column);
82
+			if ($this->alternativeName) {
83
+				$name .= 'Object';
84
+			}
85
+		}
86
+		return $name;
87
+	}
88
+
89
+	/**
90
+	 * Returns true if the property is compulsory (and therefore should be fetched in the constructor).
91
+	 * @return bool
92
+	 */
93
+	public function isCompulsory() {
94
+		// Are all columns nullable?
95
+		$localColumnNames = $this->foreignKey->getLocalColumns();
96
+
97
+		foreach ($localColumnNames as $name) {
98
+			$column = $this->table->getColumn($name);
99
+			if ($column->getNotnull()) {
100
+				return true;
101
+			}
102
+		}
103
+
104
+		return false;
105
+	}
106
+
107
+	/**
108
+	 * Returns true if the property is the primary key
109
+	 * @return bool
110
+	 */
111
+	public function isPrimaryKey() {
112
+		$fkColumns = $this->foreignKey->getLocalColumns();
113
+		sort($fkColumns);
114
+
115
+		$pkColumns = $this->table->getPrimaryKeyColumns();
116
+		sort($pkColumns);
117
+
118
+		return $fkColumns == $pkColumns;
119
+	}
120
+
121
+	/**
122
+	 * Returns the PHP code for getters and setters
123
+	 * @return string
124
+	 */
125
+	public function getGetterSetterCode() {
126
+		$tableName = $this->table->getName();
127
+		$getterName = $this->getGetterName();
128
+		$setterName = $this->getSetterName();
129
+
130
+		$referencedBeanName = TDBMDaoGenerator::getBeanNameFromTableName($this->foreignKey->getForeignTableName());
131
+
132
+		$str = '    /**
133 133
      * Returns the '.$referencedBeanName.' object bound to this object via the '.implode(" and ", $this->foreignKey->getLocalColumns()).' column.
134 134
      *
135 135
      * @return '.$referencedBeanName.'
@@ -148,6 +148,6 @@  discard block
 block discarded – undo
148 148
     }
149 149
 
150 150
 ';
151
-        return $str;
152
-    }
151
+		return $str;
152
+	}
153 153
 }
Please login to merge, or discard this patch.
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -62,7 +62,7 @@  discard block
 block discarded – undo
62 62
     public function getUpperCamelCaseName() {
63 63
         // First, are there many column or only one?
64 64
         // If one column, we name the setter after it. Otherwise, we name the setter after the table name
65
-        if (count($this->foreignKey->getLocalColumns()) > 1) {
65
+        if (count($this->foreignKey->getLocalColumns())>1) {
66 66
             $name = TDBMDaoGenerator::toSingular(TDBMDaoGenerator::toCamelCase($this->foreignKey->getForeignTableName()));
67 67
             if ($this->alternativeName) {
68 68
                 $camelizedColumns = array_map(['Mouf\\Database\\TDBM\\Utils\\TDBMDaoGenerator', 'toCamelCase'], $this->foreignKey->getLocalColumns());
@@ -144,7 +144,7 @@  discard block
 block discarded – undo
144 144
      * @param '.$referencedBeanName.' $object
145 145
      */
146 146
     public function '.$setterName.'('.$referencedBeanName.' $object = null) {
147
-        $this->setRef(' . var_export($this->foreignKey->getName(), true) . ', $object, '.var_export($tableName, true).');
147
+        $this->setRef(' . var_export($this->foreignKey->getName(), true).', $object, '.var_export($tableName, true).');
148 148
     }
149 149
 
150 150
 ';
Please login to merge, or discard this patch.
src/Mouf/Database/TDBM/Utils/TDBMDaoGenerator.php 2 patches
Spacing   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -206,7 +206,7 @@  discard block
 block discarded – undo
206 206
 
207 207
 }";
208 208
             $this->ensureDirectoryExist($possibleFileName);
209
-            file_put_contents($possibleFileName ,$str);
209
+            file_put_contents($possibleFileName, $str);
210 210
             @chmod($possibleFileName, 0664);
211 211
         }
212 212
     }
@@ -226,11 +226,11 @@  discard block
 block discarded – undo
226 226
         foreach ($table->getColumns() as $column) {
227 227
             $comments = $column->getComment();
228 228
             $matches = array();
229
-            if (preg_match('/@defaultSort(\((desc|asc)\))*/', $comments, $matches) != 0){
229
+            if (preg_match('/@defaultSort(\((desc|asc)\))*/', $comments, $matches) != 0) {
230 230
                 $defaultSort = $data['column_name'];
231
-                if (count($matches == 3)){
231
+                if (count($matches == 3)) {
232 232
                     $defaultSortDirection = $matches[2];
233
-                }else{
233
+                } else {
234 234
                     $defaultSortDirection = 'ASC';
235 235
                 }
236 236
             }
@@ -416,7 +416,7 @@  discard block
 block discarded – undo
416 416
         $possibleBaseFileName = $this->rootPath.$possibleBaseFileNames[0];
417 417
 
418 418
         $this->ensureDirectoryExist($possibleBaseFileName);
419
-        file_put_contents($possibleBaseFileName ,$str);
419
+        file_put_contents($possibleBaseFileName, $str);
420 420
         @chmod($possibleBaseFileName, 0664);
421 421
 
422 422
         $possibleFileNames = $classNameMapper->getPossibleFileNames($daonamespace."\\".$className);
@@ -447,7 +447,7 @@  discard block
 block discarded – undo
447 447
 }
448 448
 ";
449 449
             $this->ensureDirectoryExist($possibleFileName);
450
-            file_put_contents($possibleFileName ,$str);
450
+            file_put_contents($possibleFileName, $str);
451 451
             @chmod($possibleFileName, 0664);
452 452
         }
453 453
     }
@@ -523,7 +523,7 @@  discard block
 block discarded – undo
523 523
         $possibleFileName = $this->rootPath.$possibleFileNames[0];
524 524
 
525 525
         $this->ensureDirectoryExist($possibleFileName);
526
-        file_put_contents($possibleFileName ,$str);
526
+        file_put_contents($possibleFileName, $str);
527 527
     }
528 528
 
529 529
     /**
@@ -534,7 +534,7 @@  discard block
 block discarded – undo
534 534
      * @return string
535 535
      */
536 536
     public static function toCamelCase($str) {
537
-        $str = strtoupper(substr($str,0,1)).substr($str,1);
537
+        $str = strtoupper(substr($str, 0, 1)).substr($str, 1);
538 538
         while (true) {
539 539
             if (strpos($str, "_") === false && strpos($str, " ") === false) {
540 540
                 break;
@@ -544,9 +544,9 @@  discard block
 block discarded – undo
544 544
             if ($pos === false) {
545 545
                 $pos = strpos($str, " ");
546 546
             }
547
-            $before = substr($str,0,$pos);
548
-            $after = substr($str,$pos+1);
549
-            $str = $before.strtoupper(substr($after,0,1)).substr($after,1);
547
+            $before = substr($str, 0, $pos);
548
+            $after = substr($str, $pos+1);
549
+            $str = $before.strtoupper(substr($after, 0, 1)).substr($after, 1);
550 550
         }
551 551
         return $str;
552 552
     }
@@ -627,7 +627,7 @@  discard block
 block discarded – undo
627 627
             Type::GUID => 'string'
628 628
         ];
629 629
 
630
-        return isset($map[$type->getName()])?$map[$type->getName()]:$type->getName();
630
+        return isset($map[$type->getName()]) ? $map[$type->getName()] : $type->getName();
631 631
     }
632 632
 
633 633
     /**
@@ -642,7 +642,7 @@  discard block
 block discarded – undo
642 642
 
643 643
         foreach ($tables as $table) {
644 644
             $tableName = $table->getName();
645
-            $tableToBeanMap[$tableName] = $beanNamespace . "\\" . self::getBeanNameFromTableName($tableName);
645
+            $tableToBeanMap[$tableName] = $beanNamespace."\\".self::getBeanNameFromTableName($tableName);
646 646
         }
647 647
         return $tableToBeanMap;
648 648
     }
Please login to merge, or discard this patch.
Indentation   +372 added lines, -372 removed lines patch added patch discarded remove patch
@@ -20,178 +20,178 @@  discard block
 block discarded – undo
20 20
  */
21 21
 class TDBMDaoGenerator {
22 22
 
23
-    /**
24
-     * 
25
-     * @var SchemaAnalyzer
26
-     */
27
-    private $schemaAnalyzer;
28
-
29
-    /**
30
-     *
31
-     * @var Schema
32
-     */
33
-    private $schema;
34
-
35
-    /**
36
-     * The root directory of the project.
37
-     *
38
-     * @var string
39
-     */
40
-    private $rootPath;
41
-
42
-    /**
43
-     * @var TDBMSchemaAnalyzer
44
-     */
45
-    private $tdbmSchemaAnalyzer;
46
-
47
-    /**
48
-     * Constructor.
49
-     *
50
-     * @param Connection $dbConnection The connection to the database.
51
-     */
52
-    public function __construct(SchemaAnalyzer $schemaAnalyzer, Schema $schema, TDBMSchemaAnalyzer $tdbmSchemaAnalyzer) {
53
-        $this->schemaAnalyzer = $schemaAnalyzer;
54
-        $this->schema = $schema;
55
-        $this->tdbmSchemaAnalyzer = $tdbmSchemaAnalyzer;
56
-        $this->rootPath = __DIR__."/../../../../../../../../";
57
-    }
58
-
59
-    /**
60
-     * Generates all the daos and beans.
61
-     *
62
-     * @param string $daoFactoryClassName The classe name of the DAO factory
63
-     * @param string $daonamespace The namespace for the DAOs, without trailing \
64
-     * @param string $beannamespace The Namespace for the beans, without trailing \
65
-     * @param bool $storeInUtc If the generated daos should store the date in UTC timezone instead of user's timezone.
66
-     * @return \string[] the list of tables
67
-     * @throws TDBMException
68
-     */
69
-    public function generateAllDaosAndBeans($daoFactoryClassName, $daonamespace, $beannamespace, $storeInUtc) {
70
-        // TODO: extract ClassNameMapper in its own package!
71
-        $classNameMapper = ClassNameMapper::createFromComposerFile($this->rootPath.'composer.json');
72
-
73
-        // TODO: check that no class name ends with "Base". Otherwise, there will be name clash.
74
-
75
-        $tableList = $this->schema->getTables();
76
-
77
-        // Remove all beans and daos from junction tables
78
-        $junctionTables = $this->schemaAnalyzer->detectJunctionTables();
79
-        $junctionTableNames = array_map(function(Table $table) {
80
-            return $table->getName();
81
-        }, $junctionTables);
82
-
83
-        $tableList = array_filter($tableList, function(Table $table) use ($junctionTableNames) {
84
-            return !in_array($table->getName(), $junctionTableNames);
85
-        });
86
-
87
-        foreach ($tableList as $table) {
88
-            $this->generateDaoAndBean($table, $daonamespace, $beannamespace, $classNameMapper, $storeInUtc);
89
-        }
23
+	/**
24
+	 * 
25
+	 * @var SchemaAnalyzer
26
+	 */
27
+	private $schemaAnalyzer;
28
+
29
+	/**
30
+	 *
31
+	 * @var Schema
32
+	 */
33
+	private $schema;
34
+
35
+	/**
36
+	 * The root directory of the project.
37
+	 *
38
+	 * @var string
39
+	 */
40
+	private $rootPath;
41
+
42
+	/**
43
+	 * @var TDBMSchemaAnalyzer
44
+	 */
45
+	private $tdbmSchemaAnalyzer;
46
+
47
+	/**
48
+	 * Constructor.
49
+	 *
50
+	 * @param Connection $dbConnection The connection to the database.
51
+	 */
52
+	public function __construct(SchemaAnalyzer $schemaAnalyzer, Schema $schema, TDBMSchemaAnalyzer $tdbmSchemaAnalyzer) {
53
+		$this->schemaAnalyzer = $schemaAnalyzer;
54
+		$this->schema = $schema;
55
+		$this->tdbmSchemaAnalyzer = $tdbmSchemaAnalyzer;
56
+		$this->rootPath = __DIR__."/../../../../../../../../";
57
+	}
58
+
59
+	/**
60
+	 * Generates all the daos and beans.
61
+	 *
62
+	 * @param string $daoFactoryClassName The classe name of the DAO factory
63
+	 * @param string $daonamespace The namespace for the DAOs, without trailing \
64
+	 * @param string $beannamespace The Namespace for the beans, without trailing \
65
+	 * @param bool $storeInUtc If the generated daos should store the date in UTC timezone instead of user's timezone.
66
+	 * @return \string[] the list of tables
67
+	 * @throws TDBMException
68
+	 */
69
+	public function generateAllDaosAndBeans($daoFactoryClassName, $daonamespace, $beannamespace, $storeInUtc) {
70
+		// TODO: extract ClassNameMapper in its own package!
71
+		$classNameMapper = ClassNameMapper::createFromComposerFile($this->rootPath.'composer.json');
72
+
73
+		// TODO: check that no class name ends with "Base". Otherwise, there will be name clash.
74
+
75
+		$tableList = $this->schema->getTables();
76
+
77
+		// Remove all beans and daos from junction tables
78
+		$junctionTables = $this->schemaAnalyzer->detectJunctionTables();
79
+		$junctionTableNames = array_map(function(Table $table) {
80
+			return $table->getName();
81
+		}, $junctionTables);
82
+
83
+		$tableList = array_filter($tableList, function(Table $table) use ($junctionTableNames) {
84
+			return !in_array($table->getName(), $junctionTableNames);
85
+		});
86
+
87
+		foreach ($tableList as $table) {
88
+			$this->generateDaoAndBean($table, $daonamespace, $beannamespace, $classNameMapper, $storeInUtc);
89
+		}
90 90
         
91
-        $this->generateFactory($tableList, $daoFactoryClassName, $daonamespace, $classNameMapper);
91
+		$this->generateFactory($tableList, $daoFactoryClassName, $daonamespace, $classNameMapper);
92 92
 
93
-        // Ok, let's return the list of all tables.
94
-        // These will be used by the calling script to create Mouf instances.
93
+		// Ok, let's return the list of all tables.
94
+		// These will be used by the calling script to create Mouf instances.
95 95
         
96
-        return array_map(function(Table $table) { return $table->getName(); },$tableList);
97
-    }
96
+		return array_map(function(Table $table) { return $table->getName(); },$tableList);
97
+	}
98 98
     
99
-    /**
100
-     * Generates in one method call the daos and the beans for one table.
101
-     * 
102
-     * @param $tableName
103
-     */
104
-    public function generateDaoAndBean(Table $table, $daonamespace, $beannamespace, ClassNameMapper $classNameMapper, $storeInUtc) {
99
+	/**
100
+	 * Generates in one method call the daos and the beans for one table.
101
+	 * 
102
+	 * @param $tableName
103
+	 */
104
+	public function generateDaoAndBean(Table $table, $daonamespace, $beannamespace, ClassNameMapper $classNameMapper, $storeInUtc) {
105 105
 		$tableName = $table->getName();
106
-        $daoName = $this->getDaoNameFromTableName($tableName);
107
-        $beanName = $this->getBeanNameFromTableName($tableName);
108
-        $baseBeanName = $this->getBaseBeanNameFromTableName($tableName);
109
-        $baseDaoName = $this->getBaseDaoNameFromTableName($tableName);
110
-
111
-        $this->generateBean($beanName, $baseBeanName, $table, $beannamespace, $classNameMapper, $storeInUtc);
112
-        $this->generateDao($daoName, $baseDaoName, $beanName, $table, $daonamespace, $beannamespace, $classNameMapper);
113
-    }
106
+		$daoName = $this->getDaoNameFromTableName($tableName);
107
+		$beanName = $this->getBeanNameFromTableName($tableName);
108
+		$baseBeanName = $this->getBaseBeanNameFromTableName($tableName);
109
+		$baseDaoName = $this->getBaseDaoNameFromTableName($tableName);
110
+
111
+		$this->generateBean($beanName, $baseBeanName, $table, $beannamespace, $classNameMapper, $storeInUtc);
112
+		$this->generateDao($daoName, $baseDaoName, $beanName, $table, $daonamespace, $beannamespace, $classNameMapper);
113
+	}
114 114
     
115
-    /**
116
-     * Returns the name of the bean class from the table name.
117
-     * 
118
-     * @param $tableName
119
-     * @return string
120
-     */
121
-    public static function getBeanNameFromTableName($tableName) {
122
-        return TDBMDaoGenerator::toSingular(TDBMDaoGenerator::toCamelCase($tableName))."Bean";
123
-    }
115
+	/**
116
+	 * Returns the name of the bean class from the table name.
117
+	 * 
118
+	 * @param $tableName
119
+	 * @return string
120
+	 */
121
+	public static function getBeanNameFromTableName($tableName) {
122
+		return TDBMDaoGenerator::toSingular(TDBMDaoGenerator::toCamelCase($tableName))."Bean";
123
+	}
124 124
     
125
-    /**
126
-     * Returns the name of the DAO class from the table name.
127
-     * 
128
-     * @param $tableName
129
-     * @return string
130
-     */
131
-    public static function getDaoNameFromTableName($tableName) {
132
-        return TDBMDaoGenerator::toSingular(TDBMDaoGenerator::toCamelCase($tableName))."Dao";
133
-    }
125
+	/**
126
+	 * Returns the name of the DAO class from the table name.
127
+	 * 
128
+	 * @param $tableName
129
+	 * @return string
130
+	 */
131
+	public static function getDaoNameFromTableName($tableName) {
132
+		return TDBMDaoGenerator::toSingular(TDBMDaoGenerator::toCamelCase($tableName))."Dao";
133
+	}
134 134
     
135
-    /**
136
-     * Returns the name of the base bean class from the table name.
137
-     * 
138
-     * @param $tableName
139
-     * @return string
140
-     */
141
-    public static function getBaseBeanNameFromTableName($tableName) {
142
-        return TDBMDaoGenerator::toSingular(TDBMDaoGenerator::toCamelCase($tableName))."BaseBean";
143
-    }
144
-
145
-    /**
146
-     * Returns the name of the base DAO class from the table name.
147
-     *
148
-     * @param $tableName
149
-     * @return string
150
-     */
151
-    public static function getBaseDaoNameFromTableName($tableName) {
152
-        return TDBMDaoGenerator::toSingular(TDBMDaoGenerator::toCamelCase($tableName))."BaseDao";
153
-    }
154
-
155
-    /**
156
-     * Writes the PHP bean file with all getters and setters from the table passed in parameter.
157
-     *
158
-     * @param string $className The name of the class
159
-     * @param string $baseClassName The name of the base class which will be extended (name only, no directory)
160
-     * @param string $tableName The name of the table
161
-     * @param string $beannamespace The namespace of the bean
162
-     * @param ClassNameMapper $classNameMapper
163
-     * @throws TDBMException
164
-     */
165
-    public function generateBean($className, $baseClassName, Table $table, $beannamespace, ClassNameMapper $classNameMapper, $storeInUtc) {
166
-
167
-        $beanDescriptor = new BeanDescriptor($table, $this->schemaAnalyzer, $this->schema);
168
-
169
-        $str = $beanDescriptor->generatePhpCode($beannamespace);
170
-
171
-        $possibleBaseFileNames = $classNameMapper->getPossibleFileNames($beannamespace."\\".$baseClassName);
172
-        if (!$possibleBaseFileNames) {
173
-            throw new TDBMException('Sorry, autoload namespace issue. The class "'.$beannamespace."\\".$baseClassName.'" is not autoloadable.');
174
-        }
175
-        $possibleBaseFileName = $this->rootPath.$possibleBaseFileNames[0];
176
-
177
-        $this->ensureDirectoryExist($possibleBaseFileName);
178
-        file_put_contents($possibleBaseFileName, $str);
179
-        @chmod($possibleBaseFileName, 0664);
180
-
181
-
182
-
183
-        $possibleFileNames = $classNameMapper->getPossibleFileNames($beannamespace."\\".$className);
184
-        if (!$possibleFileNames) {
185
-            // @codeCoverageIgnoreStart
186
-            throw new TDBMException('Sorry, autoload namespace issue. The class "'.$beannamespace."\\".$className.'" is not autoloadable.');
187
-            // @codeCoverageIgnoreEnd
188
-        }
189
-        $possibleFileName = $this->rootPath.$possibleFileNames[0];
190
-
191
-        if (!file_exists($possibleFileName)) {
192
-            $tableName = $table->getName();
193
-
194
-            $str = "<?php
135
+	/**
136
+	 * Returns the name of the base bean class from the table name.
137
+	 * 
138
+	 * @param $tableName
139
+	 * @return string
140
+	 */
141
+	public static function getBaseBeanNameFromTableName($tableName) {
142
+		return TDBMDaoGenerator::toSingular(TDBMDaoGenerator::toCamelCase($tableName))."BaseBean";
143
+	}
144
+
145
+	/**
146
+	 * Returns the name of the base DAO class from the table name.
147
+	 *
148
+	 * @param $tableName
149
+	 * @return string
150
+	 */
151
+	public static function getBaseDaoNameFromTableName($tableName) {
152
+		return TDBMDaoGenerator::toSingular(TDBMDaoGenerator::toCamelCase($tableName))."BaseDao";
153
+	}
154
+
155
+	/**
156
+	 * Writes the PHP bean file with all getters and setters from the table passed in parameter.
157
+	 *
158
+	 * @param string $className The name of the class
159
+	 * @param string $baseClassName The name of the base class which will be extended (name only, no directory)
160
+	 * @param string $tableName The name of the table
161
+	 * @param string $beannamespace The namespace of the bean
162
+	 * @param ClassNameMapper $classNameMapper
163
+	 * @throws TDBMException
164
+	 */
165
+	public function generateBean($className, $baseClassName, Table $table, $beannamespace, ClassNameMapper $classNameMapper, $storeInUtc) {
166
+
167
+		$beanDescriptor = new BeanDescriptor($table, $this->schemaAnalyzer, $this->schema);
168
+
169
+		$str = $beanDescriptor->generatePhpCode($beannamespace);
170
+
171
+		$possibleBaseFileNames = $classNameMapper->getPossibleFileNames($beannamespace."\\".$baseClassName);
172
+		if (!$possibleBaseFileNames) {
173
+			throw new TDBMException('Sorry, autoload namespace issue. The class "'.$beannamespace."\\".$baseClassName.'" is not autoloadable.');
174
+		}
175
+		$possibleBaseFileName = $this->rootPath.$possibleBaseFileNames[0];
176
+
177
+		$this->ensureDirectoryExist($possibleBaseFileName);
178
+		file_put_contents($possibleBaseFileName, $str);
179
+		@chmod($possibleBaseFileName, 0664);
180
+
181
+
182
+
183
+		$possibleFileNames = $classNameMapper->getPossibleFileNames($beannamespace."\\".$className);
184
+		if (!$possibleFileNames) {
185
+			// @codeCoverageIgnoreStart
186
+			throw new TDBMException('Sorry, autoload namespace issue. The class "'.$beannamespace."\\".$className.'" is not autoloadable.');
187
+			// @codeCoverageIgnoreEnd
188
+		}
189
+		$possibleFileName = $this->rootPath.$possibleFileNames[0];
190
+
191
+		if (!file_exists($possibleFileName)) {
192
+			$tableName = $table->getName();
193
+
194
+			$str = "<?php
195 195
 /*
196 196
  * This file has been automatically generated by TDBM.
197 197
  * You can edit this file as it will not be overwritten.
@@ -206,44 +206,44 @@  discard block
 block discarded – undo
206 206
 {
207 207
 
208 208
 }";
209
-            $this->ensureDirectoryExist($possibleFileName);
210
-            file_put_contents($possibleFileName ,$str);
211
-            @chmod($possibleFileName, 0664);
212
-        }
213
-    }
214
-
215
-    /**
216
-     * Writes the PHP bean DAO with simple functions to create/get/save objects.
217
-     *
218
-     * @param string $fileName The file that will be written (without the directory)
219
-     * @param string $className The name of the class
220
-     * @param string $tableName The name of the table
221
-     */
222
-    public function generateDao($className, $baseClassName, $beanClassName, Table $table, $daonamespace, $beannamespace, ClassNameMapper $classNameMapper) {
223
-        $tableName = $table->getName();
224
-        $primaryKeyColumns = $table->getPrimaryKeyColumns();
225
-
226
-        $defaultSort = null;
227
-        foreach ($table->getColumns() as $column) {
228
-            $comments = $column->getComment();
229
-            $matches = array();
230
-            if (preg_match('/@defaultSort(\((desc|asc)\))*/', $comments, $matches) != 0){
231
-                $defaultSort = $data['column_name'];
232
-                if (count($matches == 3)){
233
-                    $defaultSortDirection = $matches[2];
234
-                }else{
235
-                    $defaultSortDirection = 'ASC';
236
-                }
237
-            }
238
-        }
209
+			$this->ensureDirectoryExist($possibleFileName);
210
+			file_put_contents($possibleFileName ,$str);
211
+			@chmod($possibleFileName, 0664);
212
+		}
213
+	}
214
+
215
+	/**
216
+	 * Writes the PHP bean DAO with simple functions to create/get/save objects.
217
+	 *
218
+	 * @param string $fileName The file that will be written (without the directory)
219
+	 * @param string $className The name of the class
220
+	 * @param string $tableName The name of the table
221
+	 */
222
+	public function generateDao($className, $baseClassName, $beanClassName, Table $table, $daonamespace, $beannamespace, ClassNameMapper $classNameMapper) {
223
+		$tableName = $table->getName();
224
+		$primaryKeyColumns = $table->getPrimaryKeyColumns();
225
+
226
+		$defaultSort = null;
227
+		foreach ($table->getColumns() as $column) {
228
+			$comments = $column->getComment();
229
+			$matches = array();
230
+			if (preg_match('/@defaultSort(\((desc|asc)\))*/', $comments, $matches) != 0){
231
+				$defaultSort = $data['column_name'];
232
+				if (count($matches == 3)){
233
+					$defaultSortDirection = $matches[2];
234
+				}else{
235
+					$defaultSortDirection = 'ASC';
236
+				}
237
+			}
238
+		}
239 239
 
240
-        // FIXME: lowercase tables with _ in the name should work!
241
-        $tableCamel = self::toSingular(self::toCamelCase($tableName));
240
+		// FIXME: lowercase tables with _ in the name should work!
241
+		$tableCamel = self::toSingular(self::toCamelCase($tableName));
242 242
         
243
-        $beanClassWithoutNameSpace = $beanClassName;
244
-        $beanClassName = $beannamespace."\\".$beanClassName;
243
+		$beanClassWithoutNameSpace = $beanClassName;
244
+		$beanClassName = $beannamespace."\\".$beanClassName;
245 245
         
246
-        $str = "<?php
246
+		$str = "<?php
247 247
 
248 248
 /*
249 249
  * This file has been automatically generated by TDBM.
@@ -330,9 +330,9 @@  discard block
 block discarded – undo
330 330
     }
331 331
     ";
332 332
 
333
-        if (count($primaryKeyColumns) === 1) {
334
-            $primaryKeyColumn = $primaryKeyColumns[0];
335
-            $str .= "
333
+		if (count($primaryKeyColumns) === 1) {
334
+			$primaryKeyColumn = $primaryKeyColumns[0];
335
+			$str .= "
336 336
     /**
337 337
      * Get $beanClassWithoutNameSpace specified by its ID (its primary key)
338 338
      * If the primary key does not exist, an exception is thrown.
@@ -347,8 +347,8 @@  discard block
 block discarded – undo
347 347
         return \$this->tdbmService->findObjectByPk('$tableName', ['$primaryKeyColumn' => \$id], [], \$lazyLoading);
348 348
     }
349 349
     ";
350
-        }
351
-        $str .= "
350
+		}
351
+		$str .= "
352 352
     /**
353 353
      * Deletes the $beanClassWithoutNameSpace passed in parameter.
354 354
      *
@@ -409,29 +409,29 @@  discard block
 block discarded – undo
409 409
 }
410 410
 ";
411 411
 
412
-        $possibleBaseFileNames = $classNameMapper->getPossibleFileNames($daonamespace."\\".$baseClassName);
413
-        if (!$possibleBaseFileNames) {
414
-            // @codeCoverageIgnoreStart
415
-            throw new TDBMException('Sorry, autoload namespace issue. The class "'.$baseClassName.'" is not autoloadable.');
416
-            // @codeCoverageIgnoreEnd
417
-        }
418
-        $possibleBaseFileName = $this->rootPath.$possibleBaseFileNames[0];
419
-
420
-        $this->ensureDirectoryExist($possibleBaseFileName);
421
-        file_put_contents($possibleBaseFileName ,$str);
422
-        @chmod($possibleBaseFileName, 0664);
423
-
424
-        $possibleFileNames = $classNameMapper->getPossibleFileNames($daonamespace."\\".$className);
425
-        if (!$possibleFileNames) {
426
-            // @codeCoverageIgnoreStart
427
-            throw new TDBMException('Sorry, autoload namespace issue. The class "'.$className.'" is not autoloadable.');
428
-            // @codeCoverageIgnoreEnd
429
-        }
430
-        $possibleFileName = $this->rootPath.$possibleFileNames[0];
412
+		$possibleBaseFileNames = $classNameMapper->getPossibleFileNames($daonamespace."\\".$baseClassName);
413
+		if (!$possibleBaseFileNames) {
414
+			// @codeCoverageIgnoreStart
415
+			throw new TDBMException('Sorry, autoload namespace issue. The class "'.$baseClassName.'" is not autoloadable.');
416
+			// @codeCoverageIgnoreEnd
417
+		}
418
+		$possibleBaseFileName = $this->rootPath.$possibleBaseFileNames[0];
419
+
420
+		$this->ensureDirectoryExist($possibleBaseFileName);
421
+		file_put_contents($possibleBaseFileName ,$str);
422
+		@chmod($possibleBaseFileName, 0664);
423
+
424
+		$possibleFileNames = $classNameMapper->getPossibleFileNames($daonamespace."\\".$className);
425
+		if (!$possibleFileNames) {
426
+			// @codeCoverageIgnoreStart
427
+			throw new TDBMException('Sorry, autoload namespace issue. The class "'.$className.'" is not autoloadable.');
428
+			// @codeCoverageIgnoreEnd
429
+		}
430
+		$possibleFileName = $this->rootPath.$possibleFileNames[0];
431 431
         
432
-        // Now, let's generate the "editable" class
433
-        if (!file_exists($possibleFileName)) {
434
-            $str = "<?php
432
+		// Now, let's generate the "editable" class
433
+		if (!file_exists($possibleFileName)) {
434
+			$str = "<?php
435 435
 
436 436
 /*
437 437
  * This file has been automatically generated by TDBM.
@@ -448,23 +448,23 @@  discard block
 block discarded – undo
448 448
 
449 449
 }
450 450
 ";
451
-            $this->ensureDirectoryExist($possibleFileName);
452
-            file_put_contents($possibleFileName ,$str);
453
-            @chmod($possibleFileName, 0664);
454
-        }
455
-    }
451
+			$this->ensureDirectoryExist($possibleFileName);
452
+			file_put_contents($possibleFileName ,$str);
453
+			@chmod($possibleFileName, 0664);
454
+		}
455
+	}
456 456
 
457 457
 
458 458
 
459
-    /**
460
-     * Generates the factory bean.
461
-     * 
462
-     * @param Table[] $tableList
463
-     */
464
-    private function generateFactory(array $tableList, $daoFactoryClassName, $daoNamespace, ClassNameMapper $classNameMapper) {
465
-        // For each table, let's write a property.
459
+	/**
460
+	 * Generates the factory bean.
461
+	 * 
462
+	 * @param Table[] $tableList
463
+	 */
464
+	private function generateFactory(array $tableList, $daoFactoryClassName, $daoNamespace, ClassNameMapper $classNameMapper) {
465
+		// For each table, let's write a property.
466 466
         
467
-        $str = "<?php
467
+		$str = "<?php
468 468
 
469 469
 /*
470 470
  * This file has been automatically generated by TDBM.
@@ -481,12 +481,12 @@  discard block
 block discarded – undo
481 481
 {
482 482
 ";
483 483
 
484
-        foreach ($tableList as $table) {
485
-            $tableName = $table->getName();
486
-            $daoClassName = $this->getDaoNameFromTableName($tableName);
487
-            $daoInstanceName = self::toVariableName($daoClassName);
484
+		foreach ($tableList as $table) {
485
+			$tableName = $table->getName();
486
+			$daoClassName = $this->getDaoNameFromTableName($tableName);
487
+			$daoInstanceName = self::toVariableName($daoClassName);
488 488
             
489
-            $str .= '    /**
489
+			$str .= '    /**
490 490
      * @var '.$daoClassName.'
491 491
      */
492 492
     private $'.$daoInstanceName.';
@@ -511,141 +511,141 @@  discard block
 block discarded – undo
511 511
     }
512 512
     
513 513
 ';
514
-        }
514
+		}
515 515
         
516 516
         
517
-        $str .= '
517
+		$str .= '
518 518
 }
519 519
 ';
520 520
 
521
-        $possibleFileNames = $classNameMapper->getPossibleFileNames($daoNamespace."\\".$daoFactoryClassName);
522
-        if (!$possibleFileNames) {
523
-            throw new TDBMException('Sorry, autoload namespace issue. The class "'.$daoNamespace."\\".$daoFactoryClassName.'" is not autoloadable.');
524
-        }
525
-        $possibleFileName = $this->rootPath.$possibleFileNames[0];
526
-
527
-        $this->ensureDirectoryExist($possibleFileName);
528
-        file_put_contents($possibleFileName ,$str);
529
-    }
530
-
531
-    /**
532
-     * Transforms a string to camelCase (except the first letter will be uppercase too).
533
-     * Underscores and spaces are removed and the first letter after the underscore is uppercased.
534
-     * 
535
-     * @param $str string
536
-     * @return string
537
-     */
538
-    public static function toCamelCase($str) {
539
-        $str = strtoupper(substr($str,0,1)).substr($str,1);
540
-        while (true) {
541
-            if (strpos($str, "_") === false && strpos($str, " ") === false) {
542
-                break;
521
+		$possibleFileNames = $classNameMapper->getPossibleFileNames($daoNamespace."\\".$daoFactoryClassName);
522
+		if (!$possibleFileNames) {
523
+			throw new TDBMException('Sorry, autoload namespace issue. The class "'.$daoNamespace."\\".$daoFactoryClassName.'" is not autoloadable.');
524
+		}
525
+		$possibleFileName = $this->rootPath.$possibleFileNames[0];
526
+
527
+		$this->ensureDirectoryExist($possibleFileName);
528
+		file_put_contents($possibleFileName ,$str);
529
+	}
530
+
531
+	/**
532
+	 * Transforms a string to camelCase (except the first letter will be uppercase too).
533
+	 * Underscores and spaces are removed and the first letter after the underscore is uppercased.
534
+	 * 
535
+	 * @param $str string
536
+	 * @return string
537
+	 */
538
+	public static function toCamelCase($str) {
539
+		$str = strtoupper(substr($str,0,1)).substr($str,1);
540
+		while (true) {
541
+			if (strpos($str, "_") === false && strpos($str, " ") === false) {
542
+				break;
543 543
 			}
544 544
                 
545
-            $pos = strpos($str, "_");
546
-            if ($pos === false) {
547
-                $pos = strpos($str, " ");
548
-            }
549
-            $before = substr($str,0,$pos);
550
-            $after = substr($str,$pos+1);
551
-            $str = $before.strtoupper(substr($after,0,1)).substr($after,1);
552
-        }
553
-        return $str;
554
-    }
545
+			$pos = strpos($str, "_");
546
+			if ($pos === false) {
547
+				$pos = strpos($str, " ");
548
+			}
549
+			$before = substr($str,0,$pos);
550
+			$after = substr($str,$pos+1);
551
+			$str = $before.strtoupper(substr($after,0,1)).substr($after,1);
552
+		}
553
+		return $str;
554
+	}
555 555
     
556
-    /**
557
-     * Tries to put string to the singular form (if it is plural).
558
-     * We assume the table names are in english.
559
-     *
560
-     * @param $str string
561
-     * @return string
562
-     */
563
-    public static function toSingular($str) {
564
-        return Inflector::get('en')->singularize($str);
565
-    }
556
+	/**
557
+	 * Tries to put string to the singular form (if it is plural).
558
+	 * We assume the table names are in english.
559
+	 *
560
+	 * @param $str string
561
+	 * @return string
562
+	 */
563
+	public static function toSingular($str) {
564
+		return Inflector::get('en')->singularize($str);
565
+	}
566 566
     
567
-    /**
568
-     * Put the first letter of the string in lower case.
569
-     * Very useful to transform a class name into a variable name.
570
-     * 
571
-     * @param $str string
572
-     * @return string
573
-     */
574
-    public static function toVariableName($str) {
575
-        return strtolower(substr($str, 0, 1)).substr($str, 1);
576
-    }
577
-
578
-    /**
579
-     * Ensures the file passed in parameter can be written in its directory.
580
-     * @param string $fileName
581
-     */
582
-    private function ensureDirectoryExist($fileName) {
583
-        $dirName = dirname($fileName);
584
-        if (!file_exists($dirName)) {
585
-            $old = umask(0);
586
-            $result = mkdir($dirName, 0775, true);
587
-            umask($old);
588
-            if ($result == false) {
589
-                echo "Unable to create directory: ".$dirName.".";
590
-                exit;
591
-            }
592
-        }
593
-    }
594
-
595
-    /**
596
-     * @param string $rootPath
597
-     */
598
-    public function setRootPath($rootPath)
599
-    {
600
-        $this->rootPath = $rootPath;
601
-    }
602
-
603
-    /**
604
-     * Transforms a DBAL type into a PHP type (for PHPDoc purpose)
605
-     *
606
-     * @param Type $type The DBAL type
607
-     * @return string The PHP type
608
-     */
609
-    public static function dbalTypeToPhpType(Type $type) {
610
-        $map = [
611
-            Type::TARRAY => 'array',
612
-            Type::SIMPLE_ARRAY => 'array',
613
-            Type::JSON_ARRAY => 'array',
614
-            Type::BIGINT => 'string',
615
-            Type::BOOLEAN => 'bool',
616
-            Type::DATETIME => '\DateTimeInterface',
617
-            Type::DATETIMETZ => '\DateTimeInterface',
618
-            Type::DATE => '\DateTimeInterface',
619
-            Type::TIME => '\DateTimeInterface',
620
-            Type::DECIMAL => 'float',
621
-            Type::INTEGER => 'int',
622
-            Type::OBJECT => 'string',
623
-            Type::SMALLINT => 'int',
624
-            Type::STRING => 'string',
625
-            Type::TEXT => 'string',
626
-            Type::BINARY => 'string',
627
-            Type::BLOB => 'string',
628
-            Type::FLOAT => 'float',
629
-            Type::GUID => 'string'
630
-        ];
631
-
632
-        return isset($map[$type->getName()])?$map[$type->getName()]:$type->getName();
633
-    }
634
-
635
-    /**
636
-     *
637
-     * @param string $beanNamespace
638
-     * @return \string[] Returns a map mapping table name to beans name
639
-     */
640
-    public function buildTableToBeanMap($beanNamespace) {
641
-        $tableToBeanMap = [];
642
-
643
-        $tables = $this->schema->getTables();
644
-
645
-        foreach ($tables as $table) {
646
-            $tableName = $table->getName();
647
-            $tableToBeanMap[$tableName] = $beanNamespace . "\\" . self::getBeanNameFromTableName($tableName);
648
-        }
649
-        return $tableToBeanMap;
650
-    }
567
+	/**
568
+	 * Put the first letter of the string in lower case.
569
+	 * Very useful to transform a class name into a variable name.
570
+	 * 
571
+	 * @param $str string
572
+	 * @return string
573
+	 */
574
+	public static function toVariableName($str) {
575
+		return strtolower(substr($str, 0, 1)).substr($str, 1);
576
+	}
577
+
578
+	/**
579
+	 * Ensures the file passed in parameter can be written in its directory.
580
+	 * @param string $fileName
581
+	 */
582
+	private function ensureDirectoryExist($fileName) {
583
+		$dirName = dirname($fileName);
584
+		if (!file_exists($dirName)) {
585
+			$old = umask(0);
586
+			$result = mkdir($dirName, 0775, true);
587
+			umask($old);
588
+			if ($result == false) {
589
+				echo "Unable to create directory: ".$dirName.".";
590
+				exit;
591
+			}
592
+		}
593
+	}
594
+
595
+	/**
596
+	 * @param string $rootPath
597
+	 */
598
+	public function setRootPath($rootPath)
599
+	{
600
+		$this->rootPath = $rootPath;
601
+	}
602
+
603
+	/**
604
+	 * Transforms a DBAL type into a PHP type (for PHPDoc purpose)
605
+	 *
606
+	 * @param Type $type The DBAL type
607
+	 * @return string The PHP type
608
+	 */
609
+	public static function dbalTypeToPhpType(Type $type) {
610
+		$map = [
611
+			Type::TARRAY => 'array',
612
+			Type::SIMPLE_ARRAY => 'array',
613
+			Type::JSON_ARRAY => 'array',
614
+			Type::BIGINT => 'string',
615
+			Type::BOOLEAN => 'bool',
616
+			Type::DATETIME => '\DateTimeInterface',
617
+			Type::DATETIMETZ => '\DateTimeInterface',
618
+			Type::DATE => '\DateTimeInterface',
619
+			Type::TIME => '\DateTimeInterface',
620
+			Type::DECIMAL => 'float',
621
+			Type::INTEGER => 'int',
622
+			Type::OBJECT => 'string',
623
+			Type::SMALLINT => 'int',
624
+			Type::STRING => 'string',
625
+			Type::TEXT => 'string',
626
+			Type::BINARY => 'string',
627
+			Type::BLOB => 'string',
628
+			Type::FLOAT => 'float',
629
+			Type::GUID => 'string'
630
+		];
631
+
632
+		return isset($map[$type->getName()])?$map[$type->getName()]:$type->getName();
633
+	}
634
+
635
+	/**
636
+	 *
637
+	 * @param string $beanNamespace
638
+	 * @return \string[] Returns a map mapping table name to beans name
639
+	 */
640
+	public function buildTableToBeanMap($beanNamespace) {
641
+		$tableToBeanMap = [];
642
+
643
+		$tables = $this->schema->getTables();
644
+
645
+		foreach ($tables as $table) {
646
+			$tableName = $table->getName();
647
+			$tableToBeanMap[$tableName] = $beanNamespace . "\\" . self::getBeanNameFromTableName($tableName);
648
+		}
649
+		return $tableToBeanMap;
650
+	}
651 651
 }
Please login to merge, or discard this patch.
src/Mouf/Database/TDBM/Utils/ScalarBeanPropertyDescriptor.php 1 patch
Indentation   +101 added lines, -101 removed lines patch added patch discarded remove patch
@@ -12,88 +12,88 @@  discard block
 block discarded – undo
12 12
  */
13 13
 class ScalarBeanPropertyDescriptor extends AbstractBeanPropertyDescriptor
14 14
 {
15
-    /**
16
-     * @var Column
17
-     */
18
-    private $column;
19
-
20
-
21
-    public function __construct(Table $table, Column $column) {
22
-        parent::__construct($table);
23
-        $this->table = $table;
24
-        $this->column = $column;
25
-    }
26
-
27
-    /**
28
-     * Returns the foreignkey the column is part of, if any. null otherwise.
29
-     *
30
-     * @param Column $column
31
-     * @return ForeignKeyConstraint|null
32
-     */
33
-    public function getForeignKey() {
34
-        return false;
35
-    }
36
-
37
-    /**
38
-     * Returns the param annotation for this property (useful for constructor).
39
-     *
40
-     * @return string
41
-     */
42
-    public function getParamAnnotation() {
43
-        $className = $this->getClassName();
44
-        $paramType = $className ?: TDBMDaoGenerator::dbalTypeToPhpType($this->column->getType());
45
-
46
-        $str = "     * @param %s %s";
47
-        return sprintf($str, $paramType, $this->getVariableName());
48
-    }
49
-
50
-    public function getUpperCamelCaseName() {
51
-        return TDBMDaoGenerator::toCamelCase($this->column->getName());
52
-    }
53
-
54
-    /**
55
-     * Returns the name of the class linked to this property or null if this is not a foreign key
56
-     * @return null|string
57
-     */
58
-    public function getClassName() {
59
-        return null;
60
-    }
61
-
62
-    /**
63
-     * Returns true if the property is compulsory (and therefore should be fetched in the constructor).
64
-     * @return bool
65
-     */
66
-    public function isCompulsory() {
67
-        return $this->column->getNotnull() && !$this->column->getAutoincrement();
68
-    }
69
-
70
-    /**
71
-     * Returns true if the property is the primary key
72
-     * @return bool
73
-     */
74
-    public function isPrimaryKey() {
75
-        return in_array($this->column->getName(), $this->table->getPrimaryKeyColumns());
76
-    }
77
-
78
-    /**
79
-     * Returns the PHP code for getters and setters
80
-     * @return string
81
-     */
82
-    public function getGetterSetterCode() {
83
-
84
-        $type = $this->column->getType();
85
-        $normalizedType = TDBMDaoGenerator::dbalTypeToPhpType($type);
86
-
87
-        $columnGetterName = $this->getGetterName();
88
-        $columnSetterName = $this->getSetterName();
89
-
90
-        if ($normalizedType == "\\DateTimeInterface") {
91
-            $castTo = "\\DateTimeInterface ";
92
-        } else {
93
-            $castTo = "";
94
-        }
95
-
96
-        $getterAndSetterCode = '    /**
15
+	/**
16
+	 * @var Column
17
+	 */
18
+	private $column;
19
+
20
+
21
+	public function __construct(Table $table, Column $column) {
22
+		parent::__construct($table);
23
+		$this->table = $table;
24
+		$this->column = $column;
25
+	}
26
+
27
+	/**
28
+	 * Returns the foreignkey the column is part of, if any. null otherwise.
29
+	 *
30
+	 * @param Column $column
31
+	 * @return ForeignKeyConstraint|null
32
+	 */
33
+	public function getForeignKey() {
34
+		return false;
35
+	}
36
+
37
+	/**
38
+	 * Returns the param annotation for this property (useful for constructor).
39
+	 *
40
+	 * @return string
41
+	 */
42
+	public function getParamAnnotation() {
43
+		$className = $this->getClassName();
44
+		$paramType = $className ?: TDBMDaoGenerator::dbalTypeToPhpType($this->column->getType());
45
+
46
+		$str = "     * @param %s %s";
47
+		return sprintf($str, $paramType, $this->getVariableName());
48
+	}
49
+
50
+	public function getUpperCamelCaseName() {
51
+		return TDBMDaoGenerator::toCamelCase($this->column->getName());
52
+	}
53
+
54
+	/**
55
+	 * Returns the name of the class linked to this property or null if this is not a foreign key
56
+	 * @return null|string
57
+	 */
58
+	public function getClassName() {
59
+		return null;
60
+	}
61
+
62
+	/**
63
+	 * Returns true if the property is compulsory (and therefore should be fetched in the constructor).
64
+	 * @return bool
65
+	 */
66
+	public function isCompulsory() {
67
+		return $this->column->getNotnull() && !$this->column->getAutoincrement();
68
+	}
69
+
70
+	/**
71
+	 * Returns true if the property is the primary key
72
+	 * @return bool
73
+	 */
74
+	public function isPrimaryKey() {
75
+		return in_array($this->column->getName(), $this->table->getPrimaryKeyColumns());
76
+	}
77
+
78
+	/**
79
+	 * Returns the PHP code for getters and setters
80
+	 * @return string
81
+	 */
82
+	public function getGetterSetterCode() {
83
+
84
+		$type = $this->column->getType();
85
+		$normalizedType = TDBMDaoGenerator::dbalTypeToPhpType($type);
86
+
87
+		$columnGetterName = $this->getGetterName();
88
+		$columnSetterName = $this->getSetterName();
89
+
90
+		if ($normalizedType == "\\DateTimeInterface") {
91
+			$castTo = "\\DateTimeInterface ";
92
+		} else {
93
+			$castTo = "";
94
+		}
95
+
96
+		$getterAndSetterCode = '    /**
97 97
      * The getter for the "%s" column.
98 98
      *
99 99
      * @return %s
@@ -112,23 +112,23 @@  discard block
 block discarded – undo
112 112
     }
113 113
 
114 114
 ';
115
-        return sprintf($getterAndSetterCode,
116
-            // Getter
117
-            $this->column->getName(),
118
-            $normalizedType,
119
-            $columnGetterName,
120
-            var_export($this->column->getName(), true),
121
-            var_export($this->table->getName(), true),
122
-            // Setter
123
-            $this->column->getName(),
124
-            $normalizedType,
125
-            $this->column->getName(),
126
-            $columnSetterName,
127
-            $castTo,
128
-            $this->column->getName(),
129
-            var_export($this->column->getName(), true),
130
-            $this->column->getName(),
131
-            var_export($this->table->getName(), true)
132
-        );
133
-    }
115
+		return sprintf($getterAndSetterCode,
116
+			// Getter
117
+			$this->column->getName(),
118
+			$normalizedType,
119
+			$columnGetterName,
120
+			var_export($this->column->getName(), true),
121
+			var_export($this->table->getName(), true),
122
+			// Setter
123
+			$this->column->getName(),
124
+			$normalizedType,
125
+			$this->column->getName(),
126
+			$columnSetterName,
127
+			$castTo,
128
+			$this->column->getName(),
129
+			var_export($this->column->getName(), true),
130
+			$this->column->getName(),
131
+			var_export($this->table->getName(), true)
132
+		);
133
+	}
134 134
 }
Please login to merge, or discard this patch.