Completed
Pull Request — 3.3 (#155)
by Thibault
04:23
created
src/Mouf/Database/TDBM/TDBMService.php 1 patch
Indentation   +78 added lines, -78 removed lines patch added patch discarded remove patch
@@ -531,45 +531,45 @@  discard block
 block discarded – undo
531 531
 		}
532 532
 	}
533 533
 
534
-    /**
535
-     * This function removes the given object from the database. It will also remove all objects relied to the one given
536
-     * by parameter before all.
537
-     *
538
-     * Notice: if the object has a multiple primary key, the function will not work.
539
-     *
540
-     * @param TDBMObject $objToDelete
541
-     */
542
-    public function deleteCascade(TDBMObject $objToDelete) {
543
-        $this->deleteAllConstraintWithThisObject($objToDelete);
544
-        $this->deleteObject($objToDelete);
545
-    }
546
-
547
-    /**
548
-     * This function is used only in TDBMService (private function)
549
-     * It will call deleteCascade function foreach object relied with a foreign key to the object given by parameter
550
-     *
551
-     * @param TDBMObject $obj
552
-     * @return TDBMObjectArray
553
-     */
554
-    private function deleteAllConstraintWithThisObject(TDBMObject $obj) {
555
-        $tableFrom = $this->dbConnection->escapeDBItem($obj->_getDbTableName());
556
-        $constraints = $this->dbConnection->getConstraintsFromTable($tableFrom);
557
-        foreach ($constraints as $constraint) {
558
-            $tableTo = $this->dbConnection->escapeDBItem($constraint["table1"]);
559
-            $colFrom = $this->dbConnection->escapeDBItem($constraint["col2"]);
560
-            $colTo = $this->dbConnection->escapeDBItem($constraint["col1"]);
561
-            $idVarName = $this->dbConnection->escapeDBItem($obj->getPrimaryKey()[0]);
562
-            $idValue = $this->dbConnection->quoteSmart($obj->TDBMObject_id);
563
-            $sql = "SELECT DISTINCT ".$tableTo.".*"
564
-                    ." FROM ".$tableFrom
565
-                    ." LEFT JOIN ".$tableTo." ON ".$tableFrom.".".$colFrom." = ".$tableTo.".".$colTo
566
-                    ." WHERE ".$tableFrom.".".$idVarName."=".$idValue;
567
-            $result = $this->getObjectsFromSQL($constraint["table1"], $sql);
568
-            foreach ($result as $tdbmObj) {
569
-                $this->deleteCascade($tdbmObj);
570
-            }
571
-        }
572
-    }
534
+	/**
535
+	 * This function removes the given object from the database. It will also remove all objects relied to the one given
536
+	 * by parameter before all.
537
+	 *
538
+	 * Notice: if the object has a multiple primary key, the function will not work.
539
+	 *
540
+	 * @param TDBMObject $objToDelete
541
+	 */
542
+	public function deleteCascade(TDBMObject $objToDelete) {
543
+		$this->deleteAllConstraintWithThisObject($objToDelete);
544
+		$this->deleteObject($objToDelete);
545
+	}
546
+
547
+	/**
548
+	 * This function is used only in TDBMService (private function)
549
+	 * It will call deleteCascade function foreach object relied with a foreign key to the object given by parameter
550
+	 *
551
+	 * @param TDBMObject $obj
552
+	 * @return TDBMObjectArray
553
+	 */
554
+	private function deleteAllConstraintWithThisObject(TDBMObject $obj) {
555
+		$tableFrom = $this->dbConnection->escapeDBItem($obj->_getDbTableName());
556
+		$constraints = $this->dbConnection->getConstraintsFromTable($tableFrom);
557
+		foreach ($constraints as $constraint) {
558
+			$tableTo = $this->dbConnection->escapeDBItem($constraint["table1"]);
559
+			$colFrom = $this->dbConnection->escapeDBItem($constraint["col2"]);
560
+			$colTo = $this->dbConnection->escapeDBItem($constraint["col1"]);
561
+			$idVarName = $this->dbConnection->escapeDBItem($obj->getPrimaryKey()[0]);
562
+			$idValue = $this->dbConnection->quoteSmart($obj->TDBMObject_id);
563
+			$sql = "SELECT DISTINCT ".$tableTo.".*"
564
+					." FROM ".$tableFrom
565
+					." LEFT JOIN ".$tableTo." ON ".$tableFrom.".".$colFrom." = ".$tableTo.".".$colTo
566
+					." WHERE ".$tableFrom.".".$idVarName."=".$idValue;
567
+			$result = $this->getObjectsFromSQL($constraint["table1"], $sql);
568
+			foreach ($result as $tdbmObj) {
569
+				$this->deleteCascade($tdbmObj);
570
+			}
571
+		}
572
+	}
573 573
 
574 574
 	/**
575 575
 	 * The getObjectsFromSQL is used to retrieve objects from the database using a full SQL query.
@@ -618,7 +618,7 @@  discard block
 block discarded – undo
618 618
 			}
619 619
 			$keysStandardCased = array();
620 620
 			$firstLine = true;
621
-            $colsArray = null;
621
+			$colsArray = null;
622 622
 			while ($fullCaseRow = $result->fetch(\PDO::FETCH_ASSOC))
623 623
 			{
624 624
 				$row = array();
@@ -650,7 +650,7 @@  discard block
 block discarded – undo
650 650
 					$id = serialize($ids);
651 651
 				}
652 652
 
653
-                $obj = $this->objectStorage->get($table_name,$id);
653
+				$obj = $this->objectStorage->get($table_name,$id);
654 654
 				if ($obj === null)
655 655
 				{
656 656
 					if ($className == null) {
@@ -663,10 +663,10 @@  discard block
 block discarded – undo
663 663
 					} else {
664 664
 						throw new TDBMException("Error while casting TDBMObject to class, the parameter passed is not a string. Value passed: ".$className);
665 665
 					}
666
-                    $obj->loadFromRow($row, $colsArray);
667
-                    $this->objectStorage->set($table_name, $id, $obj);
666
+					$obj->loadFromRow($row, $colsArray);
667
+					$this->objectStorage->set($table_name, $id, $obj);
668 668
 				} elseif ($obj->_getStatus() == "not loaded") {
669
-                    $obj->loadFromRow($row, $colsArray);
669
+					$obj->loadFromRow($row, $colsArray);
670 670
 					// Check that the object fetched from cache is from the requested class.
671 671
 					if ($className != null) {
672 672
 						if (!is_subclass_of(get_class($obj), $className) && get_class($obj) != $className) {
@@ -703,7 +703,7 @@  discard block
 block discarded – undo
703 703
 	private function getObjectsFromSQLGenerator($result, $table_name, $className, $sql) {
704 704
 		$keysStandardCased = array();
705 705
 		$firstLine = true;
706
-        $colsArray = null;
706
+		$colsArray = null;
707 707
 		while ($fullCaseRow = $result->fetch(\PDO::FETCH_ASSOC))
708 708
 		{
709 709
 			$row = array();
@@ -734,7 +734,7 @@  discard block
 block discarded – undo
734 734
 				}
735 735
 				$id = serialize($ids);
736 736
 			}
737
-            $obj = $this->objectStorage->get($table_name, $id);
737
+			$obj = $this->objectStorage->get($table_name, $id);
738 738
 			if ($obj === null)
739 739
 			{
740 740
 				if ($className == null) {
@@ -747,10 +747,10 @@  discard block
 block discarded – undo
747 747
 				} else {
748 748
 					throw new TDBMException("Error while casting TDBMObject to class, the parameter passed is not a string. Value passed: ".$className);
749 749
 				}
750
-                $obj->loadFromRow($row, $colsArray);
751
-                $this->objectStorage->set($table_name, $id, $obj);
750
+				$obj->loadFromRow($row, $colsArray);
751
+				$this->objectStorage->set($table_name, $id, $obj);
752 752
 			} elseif ($obj->_getStatus() == "not loaded") {
753
-                $obj->loadFromRow($row, $colsArray);
753
+				$obj->loadFromRow($row, $colsArray);
754 754
 				// Check that the object fetched from cache is from the requested class.
755 755
 				if ($className != null) {
756 756
 					if (!is_subclass_of(get_class($obj), $className) && get_class($obj) != $className) {
@@ -1455,33 +1455,33 @@  discard block
 block discarded – undo
1455 1455
 
1456 1456
 
1457 1457
 		//If no $hint_path is provided, check that a path exists
1458
-        if($hint_path === null){
1459
-            // Now, for each needed table to perform the order by, we must verify if the relationship between the order by and the object is indeed a 1* relationship
1460
-            foreach ($needed_table_array_for_orderby as $target_table_table) {
1461
-                // Get the path between the main table and the target group by table
1458
+		if($hint_path === null){
1459
+			// Now, for each needed table to perform the order by, we must verify if the relationship between the order by and the object is indeed a 1* relationship
1460
+			foreach ($needed_table_array_for_orderby as $target_table_table) {
1461
+				// Get the path between the main table and the target group by table
1462 1462
 
1463
-                // TODO! Pas bon!!!! Faut le quérir, hélas!
1464
-                // Mais comment gérer ça sans plomber les perfs et en utilisant le path fourni?????
1463
+				// TODO! Pas bon!!!! Faut le quérir, hélas!
1464
+				// Mais comment gérer ça sans plomber les perfs et en utilisant le path fourni?????
1465 1465
 
1466
-                $path = $this->getPathFromCache($table_name, $target_table_table);
1466
+				$path = $this->getPathFromCache($table_name, $target_table_table);
1467 1467
 
1468
-                /**********************************
1468
+				/**********************************
1469 1469
                  * Modifier par Marc de *1 vers 1*
1470 1470
                  * (sur les conseils de David !)
1471 1471
                  */
1472
-                $is_ok = true;
1473
-                foreach ($path as $step) {
1474
-                    if ($step["type"]=="1*") {
1475
-                        $is_ok = false;
1476
-                        break;
1477
-                    }
1478
-                }
1479
-
1480
-                if (!$is_ok) {
1481
-                    throw new TDBMException("Error in querying database from getObjectsByFilter. You tried to order your data according to a column of the '$target_table_table' table. However, the '$target_table_table' table has a many to 1 relationship with the '$table_name' table. This means that one '$table_name' object can contain many '$target_table_table' objects. Therefore, trying to order '$table_name' objects using '$target_table_table' objects is meaningless and cannot be performed.");
1482
-                }
1483
-            }
1484
-        }
1472
+				$is_ok = true;
1473
+				foreach ($path as $step) {
1474
+					if ($step["type"]=="1*") {
1475
+						$is_ok = false;
1476
+						break;
1477
+					}
1478
+				}
1479
+
1480
+				if (!$is_ok) {
1481
+					throw new TDBMException("Error in querying database from getObjectsByFilter. You tried to order your data according to a column of the '$target_table_table' table. However, the '$target_table_table' table has a many to 1 relationship with the '$table_name' table. This means that one '$table_name' object can contain many '$target_table_table' objects. Therefore, trying to order '$table_name' objects using '$target_table_table' objects is meaningless and cannot be performed.");
1482
+				}
1483
+			}
1484
+		}
1485 1485
 
1486 1486
 		// In a SELECT DISTINCT ... ORDER BY ... clause, the orderbyed columns must appear!
1487 1487
 		// Therefore, we must be able to parse the Orderby columns requested, give them dummy names and remove them afterward!
@@ -1656,9 +1656,9 @@  discard block
 block discarded – undo
1656 1656
 	 * Throws a TDBMException if one of those table does not exist.
1657 1657
 	 *
1658 1658
 	 * @param array $tables
1659
-     * @throws TDBMException
1659
+	 * @throws TDBMException
1660 1660
 	 */
1661
-    private function checkTablesExist($tables) {
1661
+	private function checkTablesExist($tables) {
1662 1662
 		foreach ($tables as $table) {
1663 1663
 			$possible_tables = $this->dbConnection->checkTableExist($table);
1664 1664
 			if ($possible_tables !== true)
@@ -1731,12 +1731,12 @@  discard block
 block discarded – undo
1731 1731
 	 * This function returns the HTML to draw a tree of DisplayNode.
1732 1732
 	 *
1733 1733
 	 * @param DisplayNode $tree
1734
-     * @param int $x
1735
-     * @param int $y
1736
-     * @param int $ret_width
1737
-     * @param int $ret_height
1738
-     *
1739
-     * @return string
1734
+	 * @param int $x
1735
+	 * @param int $y
1736
+	 * @param int $ret_width
1737
+	 * @param int $ret_height
1738
+	 *
1739
+	 * @return string
1740 1740
 	 */
1741 1741
 	public function drawTree($tree, $x, $y, &$ret_width=0, &$ret_height=0) {
1742 1742
 
Please login to merge, or discard this patch.