Completed
Pull Request — 3.4 (#46)
by David
07:34 queued 01:29
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   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -699,9 +699,9 @@  discard block
 block discarded – undo
699 699
 		// 4-2, let's take all the objects out of the orderby bag, and let's make objects from them
700 700
 		$orderby_bag2 = array();
701 701
 		foreach ($orderby_bag as $thing) {
702
-			if (is_a($thing,'Mouf\\Database\\TDBM\\Filters\\OrderBySQLString')) {
702
+			if (is_a($thing, 'Mouf\\Database\\TDBM\\Filters\\OrderBySQLString')) {
703 703
 				$orderby_bag2[] = $thing;
704
-			} elseif (is_a($thing,'Mouf\\Database\\TDBM\\Filters\\OrderByColumn')) {
704
+			} elseif (is_a($thing, 'Mouf\\Database\\TDBM\\Filters\\OrderByColumn')) {
705 705
 				$orderby_bag2[] = $thing;
706 706
 			} elseif (is_string($thing)) {
707 707
 				$orderby_bag2[] = new OrderBySQLString($thing);
@@ -1204,7 +1204,7 @@  discard block
 block discarded – undo
1204 1204
 		$schemaAnalyzer = $this->schemaAnalyzer;
1205 1205
 
1206 1206
 		foreach ($tables as $currentTable) {
1207
-			$allParents = [ $currentTable ];
1207
+			$allParents = [$currentTable];
1208 1208
 			$currentFk = null;
1209 1209
 			while ($currentFk = $schemaAnalyzer->getParentRelationship($currentTable)) {
1210 1210
 				$currentTable = $currentFk->getForeignTableName();
@@ -1246,7 +1246,7 @@  discard block
 block discarded – undo
1246 1246
 		// Let's scan the parent tables
1247 1247
 		$currentTable = $table;
1248 1248
 
1249
-		$parentTables = [ ];
1249
+		$parentTables = [];
1250 1250
 
1251 1251
 		// Get parent relationship
1252 1252
 		while ($currentFk = $schemaAnalyzer->getParentRelationship($currentTable)) {
@@ -1336,7 +1336,7 @@  discard block
 block discarded – undo
1336 1336
 	 * @return ResultIterator An object representing an array of results.
1337 1337
 	 * @throws TDBMException
1338 1338
 	 */
1339
-	public function findObjects($mainTable, $filter=null, array $parameters = array(), $orderString=null, array $additionalTablesFetch = array(), $mode = null, $className=null) {
1339
+	public function findObjects($mainTable, $filter = null, array $parameters = array(), $orderString = null, array $additionalTablesFetch = array(), $mode = null, $className = null) {
1340 1340
 		// $mainTable is not secured in MagicJoin, let's add a bit of security to avoid SQL injection.
1341 1341
 		if (!preg_match('/^[a-zA-Z_][a-zA-Z0-9_]*$/', $mainTable)) {
1342 1342
 			throw new TDBMException(sprintf("Invalid table name: '%s'", $mainTable));
@@ -1405,7 +1405,7 @@  discard block
 block discarded – undo
1405 1405
 			throw new TDBMException("Unknown fetch mode: '".$this->mode."'");
1406 1406
 		}
1407 1407
 
1408
-		$mode = $mode?:$this->mode;
1408
+		$mode = $mode ?: $this->mode;
1409 1409
 
1410 1410
 		return new ResultIterator($sql, $countSql, $parameters, $columnDescList, $this->objectStorage, $className, $this, $this->magicQuery, $mode);
1411 1411
 	}
@@ -1419,7 +1419,7 @@  discard block
 block discarded – undo
1419 1419
 	 * @return AbstractTDBMObject
1420 1420
 	 * @throws TDBMException
1421 1421
 	 */
1422
-	public function findObjectByPk($table, array $primaryKeys, array $additionalTablesFetch = array(), $lazy = false, $className=null) {
1422
+	public function findObjectByPk($table, array $primaryKeys, array $additionalTablesFetch = array(), $lazy = false, $className = null) {
1423 1423
 		$primaryKeys = $this->_getPrimaryKeysFromObjectData($table, $primaryKeys);
1424 1424
 		$hash = $this->getObjectHash($primaryKeys);
1425 1425
 
@@ -1439,7 +1439,7 @@  discard block
 block discarded – undo
1439 1439
 			// Only allowed if no inheritance.
1440 1440
 			if (count($tables) === 1) {
1441 1441
 				if ($className === null) {
1442
-					$className = isset($this->tableToBeanMap[$table])?$this->tableToBeanMap[$table]:"Mouf\\Database\\TDBM\\TDBMObject";
1442
+					$className = isset($this->tableToBeanMap[$table]) ? $this->tableToBeanMap[$table] : "Mouf\\Database\\TDBM\\TDBMObject";
1443 1443
 				}
1444 1444
 
1445 1445
 				// Let's construct the bean
@@ -1468,11 +1468,11 @@  discard block
 block discarded – undo
1468 1468
 	 * @return AbstractTDBMObject|null The object we want, or null if no object matches the filters.
1469 1469
 	 * @throws TDBMException
1470 1470
 	 */
1471
-	public function findObject($mainTable, $filterString=null, array $parameters = array(), array $additionalTablesFetch = array(), $className = null) {
1471
+	public function findObject($mainTable, $filterString = null, array $parameters = array(), array $additionalTablesFetch = array(), $className = null) {
1472 1472
 		$objects = $this->findObjects($mainTable, $filterString, $parameters, null, $additionalTablesFetch, self::MODE_ARRAY, $className);
1473 1473
 		$page = $objects->take(0, 2);
1474 1474
 		$count = $page->count();
1475
-		if ($count > 1) {
1475
+		if ($count>1) {
1476 1476
 			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.");
1477 1477
 		} elseif ($count === 0) {
1478 1478
 			return null;
@@ -1492,7 +1492,7 @@  discard block
 block discarded – undo
1492 1492
 	 * @return AbstractTDBMObject The object we want
1493 1493
 	 * @throws TDBMException
1494 1494
 	 */
1495
-	public function findObjectOrFail($mainTable, $filterString=null, array $parameters = array(), array $additionalTablesFetch = array(), $className = null) {
1495
+	public function findObjectOrFail($mainTable, $filterString = null, array $parameters = array(), array $additionalTablesFetch = array(), $className = null) {
1496 1496
 		$bean = $this->findObject($mainTable, $filterString, $parameters, $additionalTablesFetch, $className);
1497 1497
 		if ($bean === null) {
1498 1498
 			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
      *
@@ -410,29 +410,29 @@  discard block
 block discarded – undo
410 410
 }
411 411
 ";
412 412
 
413
-        $possibleBaseFileNames = $classNameMapper->getPossibleFileNames($daonamespace."\\".$baseClassName);
414
-        if (!$possibleBaseFileNames) {
415
-            // @codeCoverageIgnoreStart
416
-            throw new TDBMException('Sorry, autoload namespace issue. The class "'.$baseClassName.'" is not autoloadable.');
417
-            // @codeCoverageIgnoreEnd
418
-        }
419
-        $possibleBaseFileName = $this->rootPath.$possibleBaseFileNames[0];
420
-
421
-        $this->ensureDirectoryExist($possibleBaseFileName);
422
-        file_put_contents($possibleBaseFileName ,$str);
423
-        @chmod($possibleBaseFileName, 0664);
424
-
425
-        $possibleFileNames = $classNameMapper->getPossibleFileNames($daonamespace."\\".$className);
426
-        if (!$possibleFileNames) {
427
-            // @codeCoverageIgnoreStart
428
-            throw new TDBMException('Sorry, autoload namespace issue. The class "'.$className.'" is not autoloadable.');
429
-            // @codeCoverageIgnoreEnd
430
-        }
431
-        $possibleFileName = $this->rootPath.$possibleFileNames[0];
413
+		$possibleBaseFileNames = $classNameMapper->getPossibleFileNames($daonamespace."\\".$baseClassName);
414
+		if (!$possibleBaseFileNames) {
415
+			// @codeCoverageIgnoreStart
416
+			throw new TDBMException('Sorry, autoload namespace issue. The class "'.$baseClassName.'" is not autoloadable.');
417
+			// @codeCoverageIgnoreEnd
418
+		}
419
+		$possibleBaseFileName = $this->rootPath.$possibleBaseFileNames[0];
420
+
421
+		$this->ensureDirectoryExist($possibleBaseFileName);
422
+		file_put_contents($possibleBaseFileName ,$str);
423
+		@chmod($possibleBaseFileName, 0664);
424
+
425
+		$possibleFileNames = $classNameMapper->getPossibleFileNames($daonamespace."\\".$className);
426
+		if (!$possibleFileNames) {
427
+			// @codeCoverageIgnoreStart
428
+			throw new TDBMException('Sorry, autoload namespace issue. The class "'.$className.'" is not autoloadable.');
429
+			// @codeCoverageIgnoreEnd
430
+		}
431
+		$possibleFileName = $this->rootPath.$possibleFileNames[0];
432 432
         
433
-        // Now, let's generate the "editable" class
434
-        if (!file_exists($possibleFileName)) {
435
-            $str = "<?php
433
+		// Now, let's generate the "editable" class
434
+		if (!file_exists($possibleFileName)) {
435
+			$str = "<?php
436 436
 
437 437
 /*
438 438
  * This file has been automatically generated by TDBM.
@@ -449,23 +449,23 @@  discard block
 block discarded – undo
449 449
 
450 450
 }
451 451
 ";
452
-            $this->ensureDirectoryExist($possibleFileName);
453
-            file_put_contents($possibleFileName ,$str);
454
-            @chmod($possibleFileName, 0664);
455
-        }
456
-    }
452
+			$this->ensureDirectoryExist($possibleFileName);
453
+			file_put_contents($possibleFileName ,$str);
454
+			@chmod($possibleFileName, 0664);
455
+		}
456
+	}
457 457
 
458 458
 
459 459
 
460
-    /**
461
-     * Generates the factory bean.
462
-     * 
463
-     * @param Table[] $tableList
464
-     */
465
-    private function generateFactory(array $tableList, $daoFactoryClassName, $daoNamespace, ClassNameMapper $classNameMapper) {
466
-        // For each table, let's write a property.
460
+	/**
461
+	 * Generates the factory bean.
462
+	 * 
463
+	 * @param Table[] $tableList
464
+	 */
465
+	private function generateFactory(array $tableList, $daoFactoryClassName, $daoNamespace, ClassNameMapper $classNameMapper) {
466
+		// For each table, let's write a property.
467 467
         
468
-        $str = "<?php
468
+		$str = "<?php
469 469
 
470 470
 /*
471 471
  * This file has been automatically generated by TDBM.
@@ -482,12 +482,12 @@  discard block
 block discarded – undo
482 482
 {
483 483
 ";
484 484
 
485
-        foreach ($tableList as $table) {
486
-            $tableName = $table->getName();
487
-            $daoClassName = $this->getDaoNameFromTableName($tableName);
488
-            $daoInstanceName = self::toVariableName($daoClassName);
485
+		foreach ($tableList as $table) {
486
+			$tableName = $table->getName();
487
+			$daoClassName = $this->getDaoNameFromTableName($tableName);
488
+			$daoInstanceName = self::toVariableName($daoClassName);
489 489
             
490
-            $str .= '    /**
490
+			$str .= '    /**
491 491
      * @var '.$daoClassName.'
492 492
      */
493 493
     private $'.$daoInstanceName.';
@@ -512,141 +512,141 @@  discard block
 block discarded – undo
512 512
     }
513 513
     
514 514
 ';
515
-        }
515
+		}
516 516
         
517 517
         
518
-        $str .= '
518
+		$str .= '
519 519
 }
520 520
 ';
521 521
 
522
-        $possibleFileNames = $classNameMapper->getPossibleFileNames($daoNamespace."\\".$daoFactoryClassName);
523
-        if (!$possibleFileNames) {
524
-            throw new TDBMException('Sorry, autoload namespace issue. The class "'.$daoNamespace."\\".$daoFactoryClassName.'" is not autoloadable.');
525
-        }
526
-        $possibleFileName = $this->rootPath.$possibleFileNames[0];
527
-
528
-        $this->ensureDirectoryExist($possibleFileName);
529
-        file_put_contents($possibleFileName ,$str);
530
-    }
531
-
532
-    /**
533
-     * Transforms a string to camelCase (except the first letter will be uppercase too).
534
-     * Underscores and spaces are removed and the first letter after the underscore is uppercased.
535
-     * 
536
-     * @param $str string
537
-     * @return string
538
-     */
539
-    public static function toCamelCase($str) {
540
-        $str = strtoupper(substr($str,0,1)).substr($str,1);
541
-        while (true) {
542
-            if (strpos($str, "_") === false && strpos($str, " ") === false) {
543
-                break;
522
+		$possibleFileNames = $classNameMapper->getPossibleFileNames($daoNamespace."\\".$daoFactoryClassName);
523
+		if (!$possibleFileNames) {
524
+			throw new TDBMException('Sorry, autoload namespace issue. The class "'.$daoNamespace."\\".$daoFactoryClassName.'" is not autoloadable.');
525
+		}
526
+		$possibleFileName = $this->rootPath.$possibleFileNames[0];
527
+
528
+		$this->ensureDirectoryExist($possibleFileName);
529
+		file_put_contents($possibleFileName ,$str);
530
+	}
531
+
532
+	/**
533
+	 * Transforms a string to camelCase (except the first letter will be uppercase too).
534
+	 * Underscores and spaces are removed and the first letter after the underscore is uppercased.
535
+	 * 
536
+	 * @param $str string
537
+	 * @return string
538
+	 */
539
+	public static function toCamelCase($str) {
540
+		$str = strtoupper(substr($str,0,1)).substr($str,1);
541
+		while (true) {
542
+			if (strpos($str, "_") === false && strpos($str, " ") === false) {
543
+				break;
544 544
 			}
545 545
                 
546
-            $pos = strpos($str, "_");
547
-            if ($pos === false) {
548
-                $pos = strpos($str, " ");
549
-            }
550
-            $before = substr($str,0,$pos);
551
-            $after = substr($str,$pos+1);
552
-            $str = $before.strtoupper(substr($after,0,1)).substr($after,1);
553
-        }
554
-        return $str;
555
-    }
546
+			$pos = strpos($str, "_");
547
+			if ($pos === false) {
548
+				$pos = strpos($str, " ");
549
+			}
550
+			$before = substr($str,0,$pos);
551
+			$after = substr($str,$pos+1);
552
+			$str = $before.strtoupper(substr($after,0,1)).substr($after,1);
553
+		}
554
+		return $str;
555
+	}
556 556
     
557
-    /**
558
-     * Tries to put string to the singular form (if it is plural).
559
-     * We assume the table names are in english.
560
-     *
561
-     * @param $str string
562
-     * @return string
563
-     */
564
-    public static function toSingular($str) {
565
-        return Inflector::get('en')->singularize($str);
566
-    }
557
+	/**
558
+	 * Tries to put string to the singular form (if it is plural).
559
+	 * We assume the table names are in english.
560
+	 *
561
+	 * @param $str string
562
+	 * @return string
563
+	 */
564
+	public static function toSingular($str) {
565
+		return Inflector::get('en')->singularize($str);
566
+	}
567 567
     
568
-    /**
569
-     * Put the first letter of the string in lower case.
570
-     * Very useful to transform a class name into a variable name.
571
-     * 
572
-     * @param $str string
573
-     * @return string
574
-     */
575
-    public static function toVariableName($str) {
576
-        return strtolower(substr($str, 0, 1)).substr($str, 1);
577
-    }
578
-
579
-    /**
580
-     * Ensures the file passed in parameter can be written in its directory.
581
-     * @param string $fileName
582
-     * @throws TDBMException
583
-     */
584
-    private function ensureDirectoryExist($fileName) {
585
-        $dirName = dirname($fileName);
586
-        if (!file_exists($dirName)) {
587
-            $old = umask(0);
588
-            $result = mkdir($dirName, 0775, true);
589
-            umask($old);
590
-            if ($result === false) {
591
-                throw new TDBMException("Unable to create directory: '".$dirName."'.");
592
-            }
593
-        }
594
-    }
595
-
596
-    /**
597
-     * @param string $rootPath
598
-     */
599
-    public function setRootPath($rootPath)
600
-    {
601
-        $this->rootPath = $rootPath;
602
-    }
603
-
604
-    /**
605
-     * Transforms a DBAL type into a PHP type (for PHPDoc purpose)
606
-     *
607
-     * @param Type $type The DBAL type
608
-     * @return string The PHP type
609
-     */
610
-    public static function dbalTypeToPhpType(Type $type) {
611
-        $map = [
612
-            Type::TARRAY => 'array',
613
-            Type::SIMPLE_ARRAY => 'array',
614
-            Type::JSON_ARRAY => 'array',
615
-            Type::BIGINT => 'string',
616
-            Type::BOOLEAN => 'bool',
617
-            Type::DATETIME => '\DateTimeInterface',
618
-            Type::DATETIMETZ => '\DateTimeInterface',
619
-            Type::DATE => '\DateTimeInterface',
620
-            Type::TIME => '\DateTimeInterface',
621
-            Type::DECIMAL => 'float',
622
-            Type::INTEGER => 'int',
623
-            Type::OBJECT => 'string',
624
-            Type::SMALLINT => 'int',
625
-            Type::STRING => 'string',
626
-            Type::TEXT => 'string',
627
-            Type::BINARY => 'string',
628
-            Type::BLOB => 'string',
629
-            Type::FLOAT => 'float',
630
-            Type::GUID => 'string'
631
-        ];
632
-
633
-        return isset($map[$type->getName()])?$map[$type->getName()]:$type->getName();
634
-    }
635
-
636
-    /**
637
-     *
638
-     * @param string $beanNamespace
639
-     * @return \string[] Returns a map mapping table name to beans name
640
-     */
641
-    public function buildTableToBeanMap($beanNamespace) {
642
-        $tableToBeanMap = [];
643
-
644
-        $tables = $this->schema->getTables();
645
-
646
-        foreach ($tables as $table) {
647
-            $tableName = $table->getName();
648
-            $tableToBeanMap[$tableName] = $beanNamespace . "\\" . self::getBeanNameFromTableName($tableName);
649
-        }
650
-        return $tableToBeanMap;
651
-    }
568
+	/**
569
+	 * Put the first letter of the string in lower case.
570
+	 * Very useful to transform a class name into a variable name.
571
+	 * 
572
+	 * @param $str string
573
+	 * @return string
574
+	 */
575
+	public static function toVariableName($str) {
576
+		return strtolower(substr($str, 0, 1)).substr($str, 1);
577
+	}
578
+
579
+	/**
580
+	 * Ensures the file passed in parameter can be written in its directory.
581
+	 * @param string $fileName
582
+	 * @throws TDBMException
583
+	 */
584
+	private function ensureDirectoryExist($fileName) {
585
+		$dirName = dirname($fileName);
586
+		if (!file_exists($dirName)) {
587
+			$old = umask(0);
588
+			$result = mkdir($dirName, 0775, true);
589
+			umask($old);
590
+			if ($result === false) {
591
+				throw new TDBMException("Unable to create directory: '".$dirName."'.");
592
+			}
593
+		}
594
+	}
595
+
596
+	/**
597
+	 * @param string $rootPath
598
+	 */
599
+	public function setRootPath($rootPath)
600
+	{
601
+		$this->rootPath = $rootPath;
602
+	}
603
+
604
+	/**
605
+	 * Transforms a DBAL type into a PHP type (for PHPDoc purpose)
606
+	 *
607
+	 * @param Type $type The DBAL type
608
+	 * @return string The PHP type
609
+	 */
610
+	public static function dbalTypeToPhpType(Type $type) {
611
+		$map = [
612
+			Type::TARRAY => 'array',
613
+			Type::SIMPLE_ARRAY => 'array',
614
+			Type::JSON_ARRAY => 'array',
615
+			Type::BIGINT => 'string',
616
+			Type::BOOLEAN => 'bool',
617
+			Type::DATETIME => '\DateTimeInterface',
618
+			Type::DATETIMETZ => '\DateTimeInterface',
619
+			Type::DATE => '\DateTimeInterface',
620
+			Type::TIME => '\DateTimeInterface',
621
+			Type::DECIMAL => 'float',
622
+			Type::INTEGER => 'int',
623
+			Type::OBJECT => 'string',
624
+			Type::SMALLINT => 'int',
625
+			Type::STRING => 'string',
626
+			Type::TEXT => 'string',
627
+			Type::BINARY => 'string',
628
+			Type::BLOB => 'string',
629
+			Type::FLOAT => 'float',
630
+			Type::GUID => 'string'
631
+		];
632
+
633
+		return isset($map[$type->getName()])?$map[$type->getName()]:$type->getName();
634
+	}
635
+
636
+	/**
637
+	 *
638
+	 * @param string $beanNamespace
639
+	 * @return \string[] Returns a map mapping table name to beans name
640
+	 */
641
+	public function buildTableToBeanMap($beanNamespace) {
642
+		$tableToBeanMap = [];
643
+
644
+		$tables = $this->schema->getTables();
645
+
646
+		foreach ($tables as $table) {
647
+			$tableName = $table->getName();
648
+			$tableToBeanMap[$tableName] = $beanNamespace . "\\" . self::getBeanNameFromTableName($tableName);
649
+		}
650
+		return $tableToBeanMap;
651
+	}
652 652
 }
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.