Completed
Pull Request — 3.4 (#46)
by David
12:52 queued 01:27
created
src/Mouf/Database/TDBM/Controllers/TdbmInstallController.php 4 patches
Doc Comments   +3 added lines, -2 removed lines patch added patch discarded remove patch
@@ -138,9 +138,7 @@  discard block
 block discarded – undo
138 138
 	 * @Action
139 139
 	 * @param string $daonamespace
140 140
 	 * @param string $beannamespace
141
-	 * @param int $keepSupport
142 141
 	 * @param int $storeInUtc
143
-	 * @param int $castDatesToDateTime
144 142
 	 * @param string $selfedit
145 143
 	 * @throws \Mouf\MoufException
146 144
 	 */
@@ -168,6 +166,9 @@  discard block
 block discarded – undo
168 166
 	
169 167
 	protected $errorMsg;
170 168
 	
169
+	/**
170
+	 * @param string $msg
171
+	 */
171 172
 	private function displayErrorMsg($msg) {
172 173
 		$this->errorMsg = $msg;
173 174
 		$this->content->addFile(dirname(__FILE__)."/../../../../views/installError.php", $this);
Please login to merge, or discard this patch.
Unused Use Statements   -4 removed lines patch added patch discarded remove patch
@@ -2,12 +2,8 @@
 block discarded – undo
2 2
 namespace Mouf\Database\TDBM\Controllers;
3 3
 
4 4
 use Mouf\Composer\ClassNameMapper;
5
-use Mouf\MoufUtils;
6
-
7 5
 use Mouf\Actions\InstallUtils;
8
-
9 6
 use Mouf\MoufManager;
10
-
11 7
 use Mouf\Html\HtmlElement\HtmlBlock;
12 8
 use Mouf\Mvc\Splash\Controllers\Controller;
13 9
 
Please login to merge, or discard this patch.
Indentation   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -109,12 +109,12 @@  discard block
 block discarded – undo
109 109
 		$this->beanNamespace = $this->moufManager->getVariable("tdbmDefaultBeanNamespace_tdbmService");
110 110
 		
111 111
 		if ($this->daoNamespace == null && $this->beanNamespace == null) {
112
-            $classNameMapper = ClassNameMapper::createFromComposerFile(__DIR__.'/../../../../../../../../composer.json');
112
+			$classNameMapper = ClassNameMapper::createFromComposerFile(__DIR__.'/../../../../../../../../composer.json');
113 113
 
114
-            $autoloadNamespaces = $classNameMapper->getManagedNamespaces();
114
+			$autoloadNamespaces = $classNameMapper->getManagedNamespaces();
115 115
 			if ($autoloadNamespaces) {
116 116
 				$this->autoloadDetected = true;
117
-                $rootNamespace = $autoloadNamespaces[0];
117
+				$rootNamespace = $autoloadNamespaces[0];
118 118
 				$this->daoNamespace = $rootNamespace."Dao";
119 119
 				$this->beanNamespace = $rootNamespace."Dao\\Bean";
120 120
 			} else {
@@ -144,7 +144,7 @@  discard block
 block discarded – undo
144 144
 	 * @param string $selfedit
145 145
 	 * @throws \Mouf\MoufException
146 146
 	 */
147
-    public function generate($daonamespace, $beannamespace, $storeInUtc = 0, $selfedit="false") {
147
+	public function generate($daonamespace, $beannamespace, $storeInUtc = 0, $selfedit="false") {
148 148
 		$this->selfedit = $selfedit;
149 149
 		
150 150
 		if ($selfedit == "true") {
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -144,7 +144,7 @@
 block discarded – undo
144 144
 	 * @param string $selfedit
145 145
 	 * @throws \Mouf\MoufException
146 146
 	 */
147
-    public function generate($daonamespace, $beannamespace, $storeInUtc = 0, $selfedit="false") {
147
+    public function generate($daonamespace, $beannamespace, $storeInUtc = 0, $selfedit = "false") {
148 148
 		$this->selfedit = $selfedit;
149 149
 		
150 150
 		if ($selfedit == "true") {
Please login to merge, or discard this patch.
src/Mouf/Database/TDBM/PageIterator.php 3 patches
Doc Comments   +4 added lines, -1 removed lines patch added patch discarded remove patch
@@ -63,6 +63,9 @@  discard block
 block discarded – undo
63 63
 
64 64
 	private $innerResultIterator;
65 65
 
66
+	/**
67
+	 * @param integer $offset
68
+	 */
66 69
 	public function __construct(ResultIterator $parentResult, $magicSql, array $parameters, $limit, $offset, array $columnDescriptors, $objectStorage, $className, TDBMService $tdbmService, MagicQuery $magicQuery, $mode)
67 70
 	{
68 71
 		$this->parentResult = $parentResult;
@@ -108,7 +111,7 @@  discard block
 block discarded – undo
108 111
 	}
109 112
 
110 113
 	/**
111
-	 * @return int
114
+	 * @return double
112 115
 	 */
113 116
 	public function getCurrentPage()
114 117
 	{
Please login to merge, or discard this 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.
Unused Use Statements   -1 removed lines patch added patch discarded remove patch
@@ -18,7 +18,6 @@
 block discarded – undo
18 18
  along with this program; if not, write to the Free Software
19 19
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
20 20
  */
21
-use Doctrine\DBAL\Driver\Connection;
22 21
 
23 22
 
24 23
 /**
Please login to merge, or discard this patch.
src/Mouf/Database/TDBM/TDBMObject.php 4 patches
Doc Comments   +7 added lines patch added patch discarded remove patch
@@ -35,6 +35,9 @@  discard block
 block discarded – undo
35 35
 class TDBMObject extends AbstractTDBMObject implements \ArrayAccess, \Iterator
36 36
 {
37 37
 
38
+    /**
39
+     * @param string $var
40
+     */
38 41
     public function __get($var)
39 42
     {
40 43
         return $this->get($var);
@@ -51,6 +54,10 @@  discard block
 block discarded – undo
51 54
         return $this->has($var);
52 55
     }
53 56
 
57
+    /**
58
+     * @param string $var
59
+     * @param string|null $value
60
+     */
54 61
     public function __set($var, $value)
55 62
     {
56 63
         $this->set($var, $value);
Please login to merge, or discard this patch.
Unused Use Statements   -1 removed lines patch added patch discarded remove patch
@@ -18,7 +18,6 @@
 block discarded – undo
18 18
  along with this program; if not, write to the Free Software
19 19
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
20 20
  */
21
-use Doctrine\DBAL\Driver\Connection;
22 21
 
23 22
 
24 23
 /**
Please login to merge, or discard this patch.
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/Utils/ScalarBeanPropertyDescriptor.php 2 patches
Doc Comments   +1 added lines, -2 removed lines patch added patch discarded remove patch
@@ -27,8 +27,7 @@
 block discarded – undo
27 27
     /**
28 28
      * Returns the foreignkey the column is part of, if any. null otherwise.
29 29
      *
30
-     * @param Column $column
31
-     * @return ForeignKeyConstraint|null
30
+     * @return boolean
32 31
      */
33 32
     public function getForeignKey() {
34 33
         return false;
Please login to merge, or discard this patch.
Indentation   +118 added lines, -118 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,40 +112,40 @@  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
-    }
134
-
135
-    /**
136
-     * Returns the part of code useful when doing json serialization.
137
-     *
138
-     * @return string
139
-     */
140
-    public function getJsonSerializeCode()
141
-    {
142
-        $type = $this->column->getType();
143
-        $normalizedType = TDBMDaoGenerator::dbalTypeToPhpType($type);
144
-
145
-        if ($normalizedType == "\\DateTimeInterface") {
146
-            return '        $array['.var_export($this->getLowerCamelCaseName(), true).'] = $this->'.$this->getGetterName()."()->format('c');\n";
147
-        } else {
148
-            return '        $array['.var_export($this->getLowerCamelCaseName(), true).'] = $this->'.$this->getGetterName()."();\n";
149
-        }
150
-    }
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
+
135
+	/**
136
+	 * Returns the part of code useful when doing json serialization.
137
+	 *
138
+	 * @return string
139
+	 */
140
+	public function getJsonSerializeCode()
141
+	{
142
+		$type = $this->column->getType();
143
+		$normalizedType = TDBMDaoGenerator::dbalTypeToPhpType($type);
144
+
145
+		if ($normalizedType == "\\DateTimeInterface") {
146
+			return '        $array['.var_export($this->getLowerCamelCaseName(), true).'] = $this->'.$this->getGetterName()."()->format('c');\n";
147
+		} else {
148
+			return '        $array['.var_export($this->getLowerCamelCaseName(), true).'] = $this->'.$this->getGetterName()."();\n";
149
+		}
150
+	}
151 151
 }
Please login to merge, or discard this patch.
src/Mouf/Database/TDBM/Utils/TDBMDaoGenerator.php 5 patches
Unused Use Statements   -2 removed lines patch added patch discarded remove patch
@@ -2,8 +2,6 @@
 block discarded – undo
2 2
 namespace Mouf\Database\TDBM\Utils;
3 3
 
4 4
 use Doctrine\DBAL\Driver\Connection;
5
-use Doctrine\DBAL\Schema\Column;
6
-use Doctrine\DBAL\Schema\ForeignKeyConstraint;
7 5
 use Doctrine\DBAL\Schema\Schema;
8 6
 use Doctrine\DBAL\Schema\Table;
9 7
 use Doctrine\DBAL\Types\Type;
Please login to merge, or discard this patch.
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.
Braces   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -230,7 +230,7 @@
 block discarded – undo
230 230
                 $defaultSort = $data['column_name'];
231 231
                 if (count($matches == 3)){
232 232
                     $defaultSortDirection = $matches[2];
233
-                }else{
233
+                } else{
234 234
                     $defaultSortDirection = 'ASC';
235 235
                 }
236 236
             }
Please login to merge, or discard this patch.
Doc Comments   +10 added lines, -5 removed lines patch added patch discarded remove patch
@@ -47,7 +47,6 @@  discard block
 block discarded – undo
47 47
     /**
48 48
      * Constructor.
49 49
      *
50
-     * @param Connection $dbConnection The connection to the database.
51 50
      */
52 51
     public function __construct(SchemaAnalyzer $schemaAnalyzer, Schema $schema, TDBMSchemaAnalyzer $tdbmSchemaAnalyzer) {
53 52
         $this->schemaAnalyzer = $schemaAnalyzer;
@@ -100,6 +99,9 @@  discard block
 block discarded – undo
100 99
      * Generates in one method call the daos and the beans for one table.
101 100
      * 
102 101
      * @param $tableName
102
+     * @param string $daonamespace
103
+     * @param string $beannamespace
104
+     * @param boolean $storeInUtc
103 105
      */
104 106
     public function generateDaoAndBean(Table $table, $daonamespace, $beannamespace, ClassNameMapper $classNameMapper, $storeInUtc) {
105 107
 		$tableName = $table->getName();
@@ -135,7 +137,7 @@  discard block
 block discarded – undo
135 137
     /**
136 138
      * Returns the name of the base bean class from the table name.
137 139
      * 
138
-     * @param $tableName
140
+     * @param string $tableName
139 141
      * @return string
140 142
      */
141 143
     public static function getBaseBeanNameFromTableName($tableName) {
@@ -145,7 +147,7 @@  discard block
 block discarded – undo
145 147
     /**
146 148
      * Returns the name of the base DAO class from the table name.
147 149
      *
148
-     * @param $tableName
150
+     * @param string $tableName
149 151
      * @return string
150 152
      */
151 153
     public static function getBaseDaoNameFromTableName($tableName) {
@@ -215,9 +217,10 @@  discard block
 block discarded – undo
215 217
     /**
216 218
      * Writes the PHP bean DAO with simple functions to create/get/save objects.
217 219
      *
218
-     * @param string $fileName The file that will be written (without the directory)
219 220
      * @param string $className The name of the class
220
-     * @param string $tableName The name of the table
221
+     * @param string $table The name of the table
222
+     * @param string $baseClassName
223
+     * @param string $beanClassName
221 224
      */
222 225
     public function generateDao($className, $baseClassName, $beanClassName, Table $table, $daonamespace, $beannamespace, ClassNameMapper $classNameMapper) {
223 226
         $tableName = $table->getName();
@@ -461,6 +464,8 @@  discard block
 block discarded – undo
461 464
      * Generates the factory bean.
462 465
      * 
463 466
      * @param Table[] $tableList
467
+     * @param string $daoFactoryClassName
468
+     * @param string $daoNamespace
464 469
      */
465 470
     private function generateFactory(array $tableList, $daoFactoryClassName, $daoNamespace, ClassNameMapper $classNameMapper) {
466 471
         // For each table, let's write a property.
Please login to merge, or discard this patch.
Indentation   +373 added lines, -373 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 Table $table 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, $this->tdbmSchemaAnalyzer);
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 Table $table 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, $this->tdbmSchemaAnalyzer);
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,142 +512,142 @@  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
-        @chmod($possibleFileName, 0664);
531
-    }
532
-
533
-    /**
534
-     * Transforms a string to camelCase (except the first letter will be uppercase too).
535
-     * Underscores and spaces are removed and the first letter after the underscore is uppercased.
536
-     * 
537
-     * @param $str string
538
-     * @return string
539
-     */
540
-    public static function toCamelCase($str) {
541
-        $str = strtoupper(substr($str,0,1)).substr($str,1);
542
-        while (true) {
543
-            if (strpos($str, "_") === false && strpos($str, " ") === false) {
544
-                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
+		@chmod($possibleFileName, 0664);
531
+	}
532
+
533
+	/**
534
+	 * Transforms a string to camelCase (except the first letter will be uppercase too).
535
+	 * Underscores and spaces are removed and the first letter after the underscore is uppercased.
536
+	 * 
537
+	 * @param $str string
538
+	 * @return string
539
+	 */
540
+	public static function toCamelCase($str) {
541
+		$str = strtoupper(substr($str,0,1)).substr($str,1);
542
+		while (true) {
543
+			if (strpos($str, "_") === false && strpos($str, " ") === false) {
544
+				break;
545 545
 			}
546 546
                 
547
-            $pos = strpos($str, "_");
548
-            if ($pos === false) {
549
-                $pos = strpos($str, " ");
550
-            }
551
-            $before = substr($str,0,$pos);
552
-            $after = substr($str,$pos+1);
553
-            $str = $before.strtoupper(substr($after,0,1)).substr($after,1);
554
-        }
555
-        return $str;
556
-    }
547
+			$pos = strpos($str, "_");
548
+			if ($pos === false) {
549
+				$pos = strpos($str, " ");
550
+			}
551
+			$before = substr($str,0,$pos);
552
+			$after = substr($str,$pos+1);
553
+			$str = $before.strtoupper(substr($after,0,1)).substr($after,1);
554
+		}
555
+		return $str;
556
+	}
557 557
     
558
-    /**
559
-     * Tries to put string to the singular form (if it is plural).
560
-     * We assume the table names are in english.
561
-     *
562
-     * @param $str string
563
-     * @return string
564
-     */
565
-    public static function toSingular($str) {
566
-        return Inflector::singularize($str);
567
-    }
558
+	/**
559
+	 * Tries to put string to the singular form (if it is plural).
560
+	 * We assume the table names are in english.
561
+	 *
562
+	 * @param $str string
563
+	 * @return string
564
+	 */
565
+	public static function toSingular($str) {
566
+		return Inflector::singularize($str);
567
+	}
568 568
     
569
-    /**
570
-     * Put the first letter of the string in lower case.
571
-     * Very useful to transform a class name into a variable name.
572
-     * 
573
-     * @param $str string
574
-     * @return string
575
-     */
576
-    public static function toVariableName($str) {
577
-        return strtolower(substr($str, 0, 1)).substr($str, 1);
578
-    }
579
-
580
-    /**
581
-     * Ensures the file passed in parameter can be written in its directory.
582
-     * @param string $fileName
583
-     * @throws TDBMException
584
-     */
585
-    private function ensureDirectoryExist($fileName) {
586
-        $dirName = dirname($fileName);
587
-        if (!file_exists($dirName)) {
588
-            $old = umask(0);
589
-            $result = mkdir($dirName, 0775, true);
590
-            umask($old);
591
-            if ($result === false) {
592
-                throw new TDBMException("Unable to create directory: '".$dirName."'.");
593
-            }
594
-        }
595
-    }
596
-
597
-    /**
598
-     * @param string $rootPath
599
-     */
600
-    public function setRootPath($rootPath)
601
-    {
602
-        $this->rootPath = $rootPath;
603
-    }
604
-
605
-    /**
606
-     * Transforms a DBAL type into a PHP type (for PHPDoc purpose)
607
-     *
608
-     * @param Type $type The DBAL type
609
-     * @return string The PHP type
610
-     */
611
-    public static function dbalTypeToPhpType(Type $type) {
612
-        $map = [
613
-            Type::TARRAY => 'array',
614
-            Type::SIMPLE_ARRAY => 'array',
615
-            Type::JSON_ARRAY => 'array',
616
-            Type::BIGINT => 'string',
617
-            Type::BOOLEAN => 'bool',
618
-            Type::DATETIME => '\DateTimeInterface',
619
-            Type::DATETIMETZ => '\DateTimeInterface',
620
-            Type::DATE => '\DateTimeInterface',
621
-            Type::TIME => '\DateTimeInterface',
622
-            Type::DECIMAL => 'float',
623
-            Type::INTEGER => 'int',
624
-            Type::OBJECT => 'string',
625
-            Type::SMALLINT => 'int',
626
-            Type::STRING => 'string',
627
-            Type::TEXT => 'string',
628
-            Type::BINARY => 'string',
629
-            Type::BLOB => 'string',
630
-            Type::FLOAT => 'float',
631
-            Type::GUID => 'string'
632
-        ];
633
-
634
-        return isset($map[$type->getName()])?$map[$type->getName()]:$type->getName();
635
-    }
636
-
637
-    /**
638
-     *
639
-     * @param string $beanNamespace
640
-     * @return \string[] Returns a map mapping table name to beans name
641
-     */
642
-    public function buildTableToBeanMap($beanNamespace) {
643
-        $tableToBeanMap = [];
644
-
645
-        $tables = $this->schema->getTables();
646
-
647
-        foreach ($tables as $table) {
648
-            $tableName = $table->getName();
649
-            $tableToBeanMap[$tableName] = $beanNamespace . "\\" . self::getBeanNameFromTableName($tableName);
650
-        }
651
-        return $tableToBeanMap;
652
-    }
569
+	/**
570
+	 * Put the first letter of the string in lower case.
571
+	 * Very useful to transform a class name into a variable name.
572
+	 * 
573
+	 * @param $str string
574
+	 * @return string
575
+	 */
576
+	public static function toVariableName($str) {
577
+		return strtolower(substr($str, 0, 1)).substr($str, 1);
578
+	}
579
+
580
+	/**
581
+	 * Ensures the file passed in parameter can be written in its directory.
582
+	 * @param string $fileName
583
+	 * @throws TDBMException
584
+	 */
585
+	private function ensureDirectoryExist($fileName) {
586
+		$dirName = dirname($fileName);
587
+		if (!file_exists($dirName)) {
588
+			$old = umask(0);
589
+			$result = mkdir($dirName, 0775, true);
590
+			umask($old);
591
+			if ($result === false) {
592
+				throw new TDBMException("Unable to create directory: '".$dirName."'.");
593
+			}
594
+		}
595
+	}
596
+
597
+	/**
598
+	 * @param string $rootPath
599
+	 */
600
+	public function setRootPath($rootPath)
601
+	{
602
+		$this->rootPath = $rootPath;
603
+	}
604
+
605
+	/**
606
+	 * Transforms a DBAL type into a PHP type (for PHPDoc purpose)
607
+	 *
608
+	 * @param Type $type The DBAL type
609
+	 * @return string The PHP type
610
+	 */
611
+	public static function dbalTypeToPhpType(Type $type) {
612
+		$map = [
613
+			Type::TARRAY => 'array',
614
+			Type::SIMPLE_ARRAY => 'array',
615
+			Type::JSON_ARRAY => 'array',
616
+			Type::BIGINT => 'string',
617
+			Type::BOOLEAN => 'bool',
618
+			Type::DATETIME => '\DateTimeInterface',
619
+			Type::DATETIMETZ => '\DateTimeInterface',
620
+			Type::DATE => '\DateTimeInterface',
621
+			Type::TIME => '\DateTimeInterface',
622
+			Type::DECIMAL => 'float',
623
+			Type::INTEGER => 'int',
624
+			Type::OBJECT => 'string',
625
+			Type::SMALLINT => 'int',
626
+			Type::STRING => 'string',
627
+			Type::TEXT => 'string',
628
+			Type::BINARY => 'string',
629
+			Type::BLOB => 'string',
630
+			Type::FLOAT => 'float',
631
+			Type::GUID => 'string'
632
+		];
633
+
634
+		return isset($map[$type->getName()])?$map[$type->getName()]:$type->getName();
635
+	}
636
+
637
+	/**
638
+	 *
639
+	 * @param string $beanNamespace
640
+	 * @return \string[] Returns a map mapping table name to beans name
641
+	 */
642
+	public function buildTableToBeanMap($beanNamespace) {
643
+		$tableToBeanMap = [];
644
+
645
+		$tables = $this->schema->getTables();
646
+
647
+		foreach ($tables as $table) {
648
+			$tableName = $table->getName();
649
+			$tableToBeanMap[$tableName] = $beanNamespace . "\\" . self::getBeanNameFromTableName($tableName);
650
+		}
651
+		return $tableToBeanMap;
652
+	}
653 653
 }
Please login to merge, or discard this patch.
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/Utils/ObjectBeanPropertyDescriptor.php 2 patches
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.
Indentation   +128 added lines, -128 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,19 +148,19 @@  discard block
 block discarded – undo
148 148
     }
149 149
 
150 150
 ';
151
-        return $str;
152
-    }
153
-
154
-    /**
155
-     * Returns the part of code useful when doing json serialization.
156
-     *
157
-     * @return string
158
-     */
159
-    public function getJsonSerializeCode()
160
-    {
161
-        return '        if (!$stopRecursion) {
151
+		return $str;
152
+	}
153
+
154
+	/**
155
+	 * Returns the part of code useful when doing json serialization.
156
+	 *
157
+	 * @return string
158
+	 */
159
+	public function getJsonSerializeCode()
160
+	{
161
+		return '        if (!$stopRecursion) {
162 162
             $array['.var_export($this->getLowerCamelCaseName(), true).'] = $this->'.$this->getGetterName().'()->jsonSerialize(true);
163 163
         }
164 164
 ';
165
-    }
165
+	}
166 166
 }
Please login to merge, or discard this patch.
src/Mouf/Database/TDBM/Utils/BeanDescriptor.php 2 patches
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -288,7 +288,7 @@  discard block
 block discarded – undo
288 288
         $fksByMethodName = [];
289 289
 
290 290
         foreach ($fksByTable as $tableName => $fksForTable) {
291
-            if (count($fksForTable) > 1) {
291
+            if (count($fksForTable)>1) {
292 292
                 foreach ($fksForTable as $fk) {
293 293
                     $methodName = 'get'.TDBMDaoGenerator::toCamelCase($fk->getLocalTableName()).'By';
294 294
 
@@ -388,7 +388,7 @@  discard block
 block discarded – undo
388 388
 
389 389
         $finalDescs = [];
390 390
         foreach ($descs as $descArray) {
391
-            if (count($descArray) > 1) {
391
+            if (count($descArray)>1) {
392 392
                 foreach ($descArray as $desc) {
393 393
                     $desc['name'] = TDBMDaoGenerator::toCamelCase($desc['remoteFK']->getForeignTableName())."By".TDBMDaoGenerator::toCamelCase($desc['table']->getName());
394 394
                     $finalDescs[] = $desc;
Please login to merge, or discard this patch.
Indentation   +415 added lines, -415 removed lines patch added patch discarded remove patch
@@ -16,206 +16,206 @@  discard block
 block discarded – undo
16 16
  */
17 17
 class BeanDescriptor
18 18
 {
19
-    /**
20
-     * @var Table
21
-     */
22
-    private $table;
23
-
24
-    /**
25
-     * @var SchemaAnalyzer
26
-     */
27
-    private $schemaAnalyzer;
28
-
29
-    /**
30
-     * @var Schema
31
-     */
32
-    private $schema;
33
-
34
-    /**
35
-     * @var AbstractBeanPropertyDescriptor[]
36
-     */
37
-    private $beanPropertyDescriptors = [];
38
-
39
-    /**
40
-     * @var TDBMSchemaAnalyzer
41
-     */
42
-    private $tdbmSchemaAnalyzer;
43
-
44
-    public function __construct(Table $table, SchemaAnalyzer $schemaAnalyzer, Schema $schema, TDBMSchemaAnalyzer $tdbmSchemaAnalyzer) {
45
-        $this->table = $table;
46
-        $this->schemaAnalyzer = $schemaAnalyzer;
47
-        $this->schema = $schema;
48
-        $this->tdbmSchemaAnalyzer = $tdbmSchemaAnalyzer;
49
-        $this->initBeanPropertyDescriptors();
50
-    }
51
-
52
-    private function initBeanPropertyDescriptors() {
53
-        $this->beanPropertyDescriptors = $this->getProperties($this->table);
54
-    }
55
-
56
-    /**
57
-     * Returns the foreignkey the column is part of, if any. null otherwise.
58
-     *
59
-     * @param Table $table
60
-     * @param Column $column
61
-     * @return ForeignKeyConstraint|null
62
-     */
63
-    private function isPartOfForeignKey(Table $table, Column $column) {
64
-        $localColumnName = $column->getName();
65
-        foreach ($table->getForeignKeys() as $foreignKey) {
66
-            foreach ($foreignKey->getColumns() as $columnName) {
67
-                if ($columnName === $localColumnName) {
68
-                    return $foreignKey;
69
-                }
70
-            }
71
-        }
72
-        return null;
73
-    }
74
-
75
-    /**
76
-     * @return AbstractBeanPropertyDescriptor[]
77
-     */
78
-    public function getBeanPropertyDescriptors()
79
-    {
80
-        return $this->beanPropertyDescriptors;
81
-    }
82
-
83
-    /**
84
-     * Returns the list of columns that are not nullable and not autogenerated for a given table and its parent.
85
-     *
86
-     * @return AbstractBeanPropertyDescriptor[]
87
-     */
88
-    public function getConstructorProperties() {
89
-
90
-        $constructorProperties = array_filter($this->beanPropertyDescriptors, function(AbstractBeanPropertyDescriptor $property) {
91
-           return $property->isCompulsory();
92
-        });
93
-
94
-        return $constructorProperties;
95
-    }
96
-
97
-    /**
98
-     * Returns the list of properties exposed as getters and setters in this class.
99
-     *
100
-     * @return AbstractBeanPropertyDescriptor[]
101
-     */
102
-    public function getExposedProperties() {
103
-        $exposedProperties = array_filter($this->beanPropertyDescriptors, function(AbstractBeanPropertyDescriptor $property) {
104
-            return $property->getTable()->getName() == $this->table->getName();
105
-        });
106
-
107
-        return $exposedProperties;
108
-    }
109
-
110
-    /**
111
-     * Returns the list of properties for this table (including parent tables).
112
-     *
113
-     * @param Table $table
114
-     * @return AbstractBeanPropertyDescriptor[]
115
-     */
116
-    private function getProperties(Table $table)
117
-    {
118
-        $parentRelationship = $this->schemaAnalyzer->getParentRelationship($table->getName());
119
-        if ($parentRelationship) {
120
-            $parentTable = $this->schema->getTable($parentRelationship->getForeignTableName());
121
-            $properties = $this->getProperties($parentTable);
122
-            // we merge properties by overriding property names.
123
-            $localProperties = $this->getPropertiesForTable($table);
124
-            foreach ($localProperties as $name => $property) {
125
-                // We do not override properties if this is a primary key!
126
-                if ($property->isPrimaryKey()) {
127
-                    continue;
128
-                }
129
-                $properties[$name] = $property;
130
-            }
131
-            //$properties = array_merge($properties, $localProperties);
132
-
133
-        } else {
134
-            $properties = $this->getPropertiesForTable($table);
135
-        }
136
-
137
-        return $properties;
138
-    }
139
-
140
-        /**
141
-     * Returns the list of properties for this table (ignoring parent tables).
142
-     *
143
-     * @param Table $table
144
-     * @return AbstractBeanPropertyDescriptor[]
145
-     */
146
-    private function getPropertiesForTable(Table $table)
147
-    {
148
-        $parentRelationship = $this->schemaAnalyzer->getParentRelationship($table->getName());
149
-        if ($parentRelationship) {
150
-            $ignoreColumns = $parentRelationship->getLocalColumns();
151
-        } else {
152
-            $ignoreColumns = [];
153
-        }
154
-
155
-        $beanPropertyDescriptors = [];
156
-
157
-        foreach ($table->getColumns() as $column) {
158
-            if (array_search($column->getName(), $ignoreColumns) !== false) {
159
-                continue;
160
-            }
161
-
162
-            $fk = $this->isPartOfForeignKey($table, $column);
163
-            if ($fk !== null) {
164
-                // Check that previously added descriptors are not added on same FK (can happen with multi key FK).
165
-                foreach ($beanPropertyDescriptors as $beanDescriptor) {
166
-                    if ($beanDescriptor instanceof ObjectBeanPropertyDescriptor && $beanDescriptor->getForeignKey() === $fk) {
167
-                        continue 2;
168
-                    }
169
-                }
170
-                // Check that this property is not an inheritance relationship
171
-                $parentRelationship = $this->schemaAnalyzer->getParentRelationship($table->getName());
172
-                if ($parentRelationship === $fk) {
173
-                    continue;
174
-                }
175
-
176
-                $beanPropertyDescriptors[] = new ObjectBeanPropertyDescriptor($table, $fk, $this->schemaAnalyzer);
177
-            } else {
178
-                $beanPropertyDescriptors[] = new ScalarBeanPropertyDescriptor($table, $column);
179
-            }
180
-        }
181
-
182
-        // Now, let's get the name of all properties and let's check there is no duplicate.
183
-        /** @var $names AbstractBeanPropertyDescriptor[] */
184
-        $names = [];
185
-        foreach ($beanPropertyDescriptors as $beanDescriptor) {
186
-            $name = $beanDescriptor->getUpperCamelCaseName();
187
-            if (isset($names[$name])) {
188
-                $names[$name]->useAlternativeName();
189
-                $beanDescriptor->useAlternativeName();
190
-            } else {
191
-                $names[$name] = $beanDescriptor;
192
-            }
193
-        }
194
-
195
-        // Final check (throw exceptions if problem arises)
196
-        $names = [];
197
-        foreach ($beanPropertyDescriptors as $beanDescriptor) {
198
-            $name = $beanDescriptor->getUpperCamelCaseName();
199
-            if (isset($names[$name])) {
200
-                throw new TDBMException("Unsolvable name conflict while generating method name");
201
-            } else {
202
-                $names[$name] = $beanDescriptor;
203
-            }
204
-        }
205
-
206
-        // Last step, let's rebuild the list with a map:
207
-        $beanPropertyDescriptorsMap = [];
208
-        foreach ($beanPropertyDescriptors as $beanDescriptor) {
209
-            $beanPropertyDescriptorsMap[$beanDescriptor->getLowerCamelCaseName()] = $beanDescriptor;
210
-        }
211
-
212
-        return $beanPropertyDescriptorsMap;
213
-    }
214
-
215
-    public function generateBeanConstructor() {
216
-        $constructorProperties = $this->getConstructorProperties();
217
-
218
-        $constructorCode = "    /**
19
+	/**
20
+	 * @var Table
21
+	 */
22
+	private $table;
23
+
24
+	/**
25
+	 * @var SchemaAnalyzer
26
+	 */
27
+	private $schemaAnalyzer;
28
+
29
+	/**
30
+	 * @var Schema
31
+	 */
32
+	private $schema;
33
+
34
+	/**
35
+	 * @var AbstractBeanPropertyDescriptor[]
36
+	 */
37
+	private $beanPropertyDescriptors = [];
38
+
39
+	/**
40
+	 * @var TDBMSchemaAnalyzer
41
+	 */
42
+	private $tdbmSchemaAnalyzer;
43
+
44
+	public function __construct(Table $table, SchemaAnalyzer $schemaAnalyzer, Schema $schema, TDBMSchemaAnalyzer $tdbmSchemaAnalyzer) {
45
+		$this->table = $table;
46
+		$this->schemaAnalyzer = $schemaAnalyzer;
47
+		$this->schema = $schema;
48
+		$this->tdbmSchemaAnalyzer = $tdbmSchemaAnalyzer;
49
+		$this->initBeanPropertyDescriptors();
50
+	}
51
+
52
+	private function initBeanPropertyDescriptors() {
53
+		$this->beanPropertyDescriptors = $this->getProperties($this->table);
54
+	}
55
+
56
+	/**
57
+	 * Returns the foreignkey the column is part of, if any. null otherwise.
58
+	 *
59
+	 * @param Table $table
60
+	 * @param Column $column
61
+	 * @return ForeignKeyConstraint|null
62
+	 */
63
+	private function isPartOfForeignKey(Table $table, Column $column) {
64
+		$localColumnName = $column->getName();
65
+		foreach ($table->getForeignKeys() as $foreignKey) {
66
+			foreach ($foreignKey->getColumns() as $columnName) {
67
+				if ($columnName === $localColumnName) {
68
+					return $foreignKey;
69
+				}
70
+			}
71
+		}
72
+		return null;
73
+	}
74
+
75
+	/**
76
+	 * @return AbstractBeanPropertyDescriptor[]
77
+	 */
78
+	public function getBeanPropertyDescriptors()
79
+	{
80
+		return $this->beanPropertyDescriptors;
81
+	}
82
+
83
+	/**
84
+	 * Returns the list of columns that are not nullable and not autogenerated for a given table and its parent.
85
+	 *
86
+	 * @return AbstractBeanPropertyDescriptor[]
87
+	 */
88
+	public function getConstructorProperties() {
89
+
90
+		$constructorProperties = array_filter($this->beanPropertyDescriptors, function(AbstractBeanPropertyDescriptor $property) {
91
+		   return $property->isCompulsory();
92
+		});
93
+
94
+		return $constructorProperties;
95
+	}
96
+
97
+	/**
98
+	 * Returns the list of properties exposed as getters and setters in this class.
99
+	 *
100
+	 * @return AbstractBeanPropertyDescriptor[]
101
+	 */
102
+	public function getExposedProperties() {
103
+		$exposedProperties = array_filter($this->beanPropertyDescriptors, function(AbstractBeanPropertyDescriptor $property) {
104
+			return $property->getTable()->getName() == $this->table->getName();
105
+		});
106
+
107
+		return $exposedProperties;
108
+	}
109
+
110
+	/**
111
+	 * Returns the list of properties for this table (including parent tables).
112
+	 *
113
+	 * @param Table $table
114
+	 * @return AbstractBeanPropertyDescriptor[]
115
+	 */
116
+	private function getProperties(Table $table)
117
+	{
118
+		$parentRelationship = $this->schemaAnalyzer->getParentRelationship($table->getName());
119
+		if ($parentRelationship) {
120
+			$parentTable = $this->schema->getTable($parentRelationship->getForeignTableName());
121
+			$properties = $this->getProperties($parentTable);
122
+			// we merge properties by overriding property names.
123
+			$localProperties = $this->getPropertiesForTable($table);
124
+			foreach ($localProperties as $name => $property) {
125
+				// We do not override properties if this is a primary key!
126
+				if ($property->isPrimaryKey()) {
127
+					continue;
128
+				}
129
+				$properties[$name] = $property;
130
+			}
131
+			//$properties = array_merge($properties, $localProperties);
132
+
133
+		} else {
134
+			$properties = $this->getPropertiesForTable($table);
135
+		}
136
+
137
+		return $properties;
138
+	}
139
+
140
+		/**
141
+		 * Returns the list of properties for this table (ignoring parent tables).
142
+		 *
143
+		 * @param Table $table
144
+		 * @return AbstractBeanPropertyDescriptor[]
145
+		 */
146
+	private function getPropertiesForTable(Table $table)
147
+	{
148
+		$parentRelationship = $this->schemaAnalyzer->getParentRelationship($table->getName());
149
+		if ($parentRelationship) {
150
+			$ignoreColumns = $parentRelationship->getLocalColumns();
151
+		} else {
152
+			$ignoreColumns = [];
153
+		}
154
+
155
+		$beanPropertyDescriptors = [];
156
+
157
+		foreach ($table->getColumns() as $column) {
158
+			if (array_search($column->getName(), $ignoreColumns) !== false) {
159
+				continue;
160
+			}
161
+
162
+			$fk = $this->isPartOfForeignKey($table, $column);
163
+			if ($fk !== null) {
164
+				// Check that previously added descriptors are not added on same FK (can happen with multi key FK).
165
+				foreach ($beanPropertyDescriptors as $beanDescriptor) {
166
+					if ($beanDescriptor instanceof ObjectBeanPropertyDescriptor && $beanDescriptor->getForeignKey() === $fk) {
167
+						continue 2;
168
+					}
169
+				}
170
+				// Check that this property is not an inheritance relationship
171
+				$parentRelationship = $this->schemaAnalyzer->getParentRelationship($table->getName());
172
+				if ($parentRelationship === $fk) {
173
+					continue;
174
+				}
175
+
176
+				$beanPropertyDescriptors[] = new ObjectBeanPropertyDescriptor($table, $fk, $this->schemaAnalyzer);
177
+			} else {
178
+				$beanPropertyDescriptors[] = new ScalarBeanPropertyDescriptor($table, $column);
179
+			}
180
+		}
181
+
182
+		// Now, let's get the name of all properties and let's check there is no duplicate.
183
+		/** @var $names AbstractBeanPropertyDescriptor[] */
184
+		$names = [];
185
+		foreach ($beanPropertyDescriptors as $beanDescriptor) {
186
+			$name = $beanDescriptor->getUpperCamelCaseName();
187
+			if (isset($names[$name])) {
188
+				$names[$name]->useAlternativeName();
189
+				$beanDescriptor->useAlternativeName();
190
+			} else {
191
+				$names[$name] = $beanDescriptor;
192
+			}
193
+		}
194
+
195
+		// Final check (throw exceptions if problem arises)
196
+		$names = [];
197
+		foreach ($beanPropertyDescriptors as $beanDescriptor) {
198
+			$name = $beanDescriptor->getUpperCamelCaseName();
199
+			if (isset($names[$name])) {
200
+				throw new TDBMException("Unsolvable name conflict while generating method name");
201
+			} else {
202
+				$names[$name] = $beanDescriptor;
203
+			}
204
+		}
205
+
206
+		// Last step, let's rebuild the list with a map:
207
+		$beanPropertyDescriptorsMap = [];
208
+		foreach ($beanPropertyDescriptors as $beanDescriptor) {
209
+			$beanPropertyDescriptorsMap[$beanDescriptor->getLowerCamelCaseName()] = $beanDescriptor;
210
+		}
211
+
212
+		return $beanPropertyDescriptorsMap;
213
+	}
214
+
215
+	public function generateBeanConstructor() {
216
+		$constructorProperties = $this->getConstructorProperties();
217
+
218
+		$constructorCode = "    /**
219 219
      * The constructor takes all compulsory arguments.
220 220
      *
221 221
 %s
@@ -225,64 +225,64 @@  discard block
 block discarded – undo
225 225
     }
226 226
     ";
227 227
 
228
-        $paramAnnotations = [];
229
-        $arguments = [];
230
-        $assigns = [];
231
-        $parentConstructorArguments = [];
232
-
233
-        foreach ($constructorProperties as $property) {
234
-            $className = $property->getClassName();
235
-            if ($className) {
236
-                $arguments[] = $className.' '.$property->getVariableName();
237
-            } else {
238
-                $arguments[] = $property->getVariableName();
239
-            }
240
-            $paramAnnotations[] = $property->getParamAnnotation();
241
-            if ($property->getTable()->getName() === $this->table->getName()) {
242
-                $assigns[] = $property->getConstructorAssignCode();
243
-            } else {
244
-                $parentConstructorArguments[] = $property->getVariableName();
245
-            }
246
-        }
228
+		$paramAnnotations = [];
229
+		$arguments = [];
230
+		$assigns = [];
231
+		$parentConstructorArguments = [];
247 232
 
248
-        $parentConstrutorCode = sprintf("        parent::__construct(%s);\n", implode(', ', $parentConstructorArguments));
233
+		foreach ($constructorProperties as $property) {
234
+			$className = $property->getClassName();
235
+			if ($className) {
236
+				$arguments[] = $className.' '.$property->getVariableName();
237
+			} else {
238
+				$arguments[] = $property->getVariableName();
239
+			}
240
+			$paramAnnotations[] = $property->getParamAnnotation();
241
+			if ($property->getTable()->getName() === $this->table->getName()) {
242
+				$assigns[] = $property->getConstructorAssignCode();
243
+			} else {
244
+				$parentConstructorArguments[] = $property->getVariableName();
245
+			}
246
+		}
249 247
 
250
-        return sprintf($constructorCode, implode("\n", $paramAnnotations), implode(", ", $arguments), $parentConstrutorCode, implode("\n", $assigns));
251
-    }
248
+		$parentConstrutorCode = sprintf("        parent::__construct(%s);\n", implode(', ', $parentConstructorArguments));
252 249
 
253
-    public function generateDirectForeignKeysCode() {
254
-        $fks = $this->tdbmSchemaAnalyzer->getIncomingForeignKeys($this->table->getName());
250
+		return sprintf($constructorCode, implode("\n", $paramAnnotations), implode(", ", $arguments), $parentConstrutorCode, implode("\n", $assigns));
251
+	}
255 252
 
256
-        $fksByTable = [];
253
+	public function generateDirectForeignKeysCode() {
254
+		$fks = $this->tdbmSchemaAnalyzer->getIncomingForeignKeys($this->table->getName());
257 255
 
258
-        foreach ($fks as $fk) {
259
-            $fksByTable[$fk->getLocalTableName()][] = $fk;
260
-        }
256
+		$fksByTable = [];
261 257
 
262
-        /* @var $fksByMethodName ForeignKeyConstraint[] */
263
-        $fksByMethodName = [];
258
+		foreach ($fks as $fk) {
259
+			$fksByTable[$fk->getLocalTableName()][] = $fk;
260
+		}
264 261
 
265
-        foreach ($fksByTable as $tableName => $fksForTable) {
266
-            if (count($fksForTable) > 1) {
267
-                foreach ($fksForTable as $fk) {
268
-                    $methodName = 'get'.TDBMDaoGenerator::toCamelCase($fk->getLocalTableName()).'By';
262
+		/* @var $fksByMethodName ForeignKeyConstraint[] */
263
+		$fksByMethodName = [];
269 264
 
270
-                    $camelizedColumns = array_map(['Mouf\\Database\\TDBM\\Utils\\TDBMDaoGenerator', 'toCamelCase'], $fk->getLocalColumns());
265
+		foreach ($fksByTable as $tableName => $fksForTable) {
266
+			if (count($fksForTable) > 1) {
267
+				foreach ($fksForTable as $fk) {
268
+					$methodName = 'get'.TDBMDaoGenerator::toCamelCase($fk->getLocalTableName()).'By';
271 269
 
272
-                    $methodName .= implode('And', $camelizedColumns);
270
+					$camelizedColumns = array_map(['Mouf\\Database\\TDBM\\Utils\\TDBMDaoGenerator', 'toCamelCase'], $fk->getLocalColumns());
273 271
 
274
-                    $fksByMethodName[$methodName] = $fk;
275
-                }
276
-            } else {
277
-                $methodName = 'get'.TDBMDaoGenerator::toCamelCase($fksForTable[0]->getLocalTableName());
278
-                $fksByMethodName[$methodName] = $fk;
279
-            }
280
-        }
272
+					$methodName .= implode('And', $camelizedColumns);
273
+
274
+					$fksByMethodName[$methodName] = $fk;
275
+				}
276
+			} else {
277
+				$methodName = 'get'.TDBMDaoGenerator::toCamelCase($fksForTable[0]->getLocalTableName());
278
+				$fksByMethodName[$methodName] = $fk;
279
+			}
280
+		}
281 281
 
282
-        $code = '';
282
+		$code = '';
283 283
 
284
-        foreach ($fksByMethodName as $methodName => $fk) {
285
-            $getterCode = '    /**
284
+		foreach ($fksByMethodName as $methodName => $fk) {
285
+			$getterCode = '    /**
286 286
      * Returns the list of %s pointing to this bean via the %s column.
287 287
      *
288 288
      * @return %s[]|ResultIterator
@@ -294,109 +294,109 @@  discard block
 block discarded – undo
294 294
 
295 295
 ';
296 296
 
297
-            list($sql, $parametersCode) = $this->getFilters($fk);
298
-
299
-            $beanClass = TDBMDaoGenerator::getBeanNameFromTableName($fk->getLocalTableName());
300
-            $code .= sprintf($getterCode,
301
-                $beanClass,
302
-                implode(', ', $fk->getColumns()),
303
-                $beanClass,
304
-                $methodName,
305
-                var_export($fk->getLocalTableName(), true),
306
-                $sql,
307
-                $parametersCode
308
-            );
309
-        }
310
-
311
-        return $code;
312
-    }
313
-
314
-    private function getFilters(ForeignKeyConstraint $fk) {
315
-        $sqlParts = [];
316
-        $counter = 0;
317
-        $parameters = [];
318
-
319
-        $pkColumns = $this->table->getPrimaryKeyColumns();
320
-
321
-        foreach ($fk->getLocalColumns() as $columnName) {
322
-            $paramName = "tdbmparam".$counter;
323
-            $sqlParts[] = $fk->getLocalTableName().'.'.$columnName." = :".$paramName;
324
-
325
-            $pkColumn = $pkColumns[$counter];
326
-            $parameters[] = sprintf('%s => $this->get(%s, %s)', var_export($paramName, true), var_export($pkColumn, true), var_export($this->table->getName(), true));
327
-            $counter++;
328
-        }
329
-        $sql = "'".implode(' AND ', $sqlParts)."'";
330
-        $parametersCode = '[ '.implode(', ', $parameters).' ]';
331
-
332
-        return [$sql, $parametersCode];
333
-    }
334
-
335
-    /**
336
-     * Generate code section about pivot tables
337
-     *
338
-     * @return string;
339
-     */
340
-    public function generatePivotTableCode() {
341
-
342
-        $finalDescs = $this->getPivotTableDescriptors();
343
-
344
-        $code = '';
345
-
346
-        foreach ($finalDescs as $desc) {
347
-            $code .= $this->getPivotTableCode($desc['name'], $desc['table'], $desc['localFK'], $desc['remoteFK']);
348
-        }
349
-
350
-        return $code;
351
-    }
352
-
353
-    private function getPivotTableDescriptors() {
354
-        $descs = [];
355
-        foreach ($this->schemaAnalyzer->detectJunctionTables() as $table) {
356
-            // There are exactly 2 FKs since this is a pivot table.
357
-            $fks = array_values($table->getForeignKeys());
358
-
359
-            if ($fks[0]->getForeignTableName() === $this->table->getName()) {
360
-                $localFK = $fks[0];
361
-                $remoteFK = $fks[1];
362
-            } elseif ($fks[1]->getForeignTableName() === $this->table->getName()) {
363
-                $localFK = $fks[1];
364
-                $remoteFK = $fks[0];
365
-            } else {
366
-                continue;
367
-            }
368
-
369
-            $descs[$remoteFK->getForeignTableName()][] = [
370
-                'table' => $table,
371
-                'localFK' => $localFK,
372
-                'remoteFK' => $remoteFK
373
-            ];
374
-
375
-        }
376
-
377
-        $finalDescs = [];
378
-        foreach ($descs as $descArray) {
379
-            if (count($descArray) > 1) {
380
-                foreach ($descArray as $desc) {
381
-                    $desc['name'] = TDBMDaoGenerator::toCamelCase($desc['remoteFK']->getForeignTableName())."By".TDBMDaoGenerator::toCamelCase($desc['table']->getName());
382
-                    $finalDescs[] = $desc;
383
-                }
384
-            } else {
385
-                $desc = $descArray[0];
386
-                $desc['name'] = TDBMDaoGenerator::toCamelCase($desc['remoteFK']->getForeignTableName());
387
-                $finalDescs[] = $desc;
388
-            }
389
-        }
390
-
391
-        return $finalDescs;
392
-    }
393
-
394
-    public function getPivotTableCode($name, Table $table, ForeignKeyConstraint $localFK, ForeignKeyConstraint $remoteFK) {
395
-        $singularName = TDBMDaoGenerator::toSingular($name);
396
-        $remoteBeanName = TDBMDaoGenerator::getBeanNameFromTableName($remoteFK->getForeignTableName());
397
-        $variableName = '$'.TDBMDaoGenerator::toVariableName($remoteBeanName);
398
-
399
-        $str = '    /**
297
+			list($sql, $parametersCode) = $this->getFilters($fk);
298
+
299
+			$beanClass = TDBMDaoGenerator::getBeanNameFromTableName($fk->getLocalTableName());
300
+			$code .= sprintf($getterCode,
301
+				$beanClass,
302
+				implode(', ', $fk->getColumns()),
303
+				$beanClass,
304
+				$methodName,
305
+				var_export($fk->getLocalTableName(), true),
306
+				$sql,
307
+				$parametersCode
308
+			);
309
+		}
310
+
311
+		return $code;
312
+	}
313
+
314
+	private function getFilters(ForeignKeyConstraint $fk) {
315
+		$sqlParts = [];
316
+		$counter = 0;
317
+		$parameters = [];
318
+
319
+		$pkColumns = $this->table->getPrimaryKeyColumns();
320
+
321
+		foreach ($fk->getLocalColumns() as $columnName) {
322
+			$paramName = "tdbmparam".$counter;
323
+			$sqlParts[] = $fk->getLocalTableName().'.'.$columnName." = :".$paramName;
324
+
325
+			$pkColumn = $pkColumns[$counter];
326
+			$parameters[] = sprintf('%s => $this->get(%s, %s)', var_export($paramName, true), var_export($pkColumn, true), var_export($this->table->getName(), true));
327
+			$counter++;
328
+		}
329
+		$sql = "'".implode(' AND ', $sqlParts)."'";
330
+		$parametersCode = '[ '.implode(', ', $parameters).' ]';
331
+
332
+		return [$sql, $parametersCode];
333
+	}
334
+
335
+	/**
336
+	 * Generate code section about pivot tables
337
+	 *
338
+	 * @return string;
339
+	 */
340
+	public function generatePivotTableCode() {
341
+
342
+		$finalDescs = $this->getPivotTableDescriptors();
343
+
344
+		$code = '';
345
+
346
+		foreach ($finalDescs as $desc) {
347
+			$code .= $this->getPivotTableCode($desc['name'], $desc['table'], $desc['localFK'], $desc['remoteFK']);
348
+		}
349
+
350
+		return $code;
351
+	}
352
+
353
+	private function getPivotTableDescriptors() {
354
+		$descs = [];
355
+		foreach ($this->schemaAnalyzer->detectJunctionTables() as $table) {
356
+			// There are exactly 2 FKs since this is a pivot table.
357
+			$fks = array_values($table->getForeignKeys());
358
+
359
+			if ($fks[0]->getForeignTableName() === $this->table->getName()) {
360
+				$localFK = $fks[0];
361
+				$remoteFK = $fks[1];
362
+			} elseif ($fks[1]->getForeignTableName() === $this->table->getName()) {
363
+				$localFK = $fks[1];
364
+				$remoteFK = $fks[0];
365
+			} else {
366
+				continue;
367
+			}
368
+
369
+			$descs[$remoteFK->getForeignTableName()][] = [
370
+				'table' => $table,
371
+				'localFK' => $localFK,
372
+				'remoteFK' => $remoteFK
373
+			];
374
+
375
+		}
376
+
377
+		$finalDescs = [];
378
+		foreach ($descs as $descArray) {
379
+			if (count($descArray) > 1) {
380
+				foreach ($descArray as $desc) {
381
+					$desc['name'] = TDBMDaoGenerator::toCamelCase($desc['remoteFK']->getForeignTableName())."By".TDBMDaoGenerator::toCamelCase($desc['table']->getName());
382
+					$finalDescs[] = $desc;
383
+				}
384
+			} else {
385
+				$desc = $descArray[0];
386
+				$desc['name'] = TDBMDaoGenerator::toCamelCase($desc['remoteFK']->getForeignTableName());
387
+				$finalDescs[] = $desc;
388
+			}
389
+		}
390
+
391
+		return $finalDescs;
392
+	}
393
+
394
+	public function getPivotTableCode($name, Table $table, ForeignKeyConstraint $localFK, ForeignKeyConstraint $remoteFK) {
395
+		$singularName = TDBMDaoGenerator::toSingular($name);
396
+		$remoteBeanName = TDBMDaoGenerator::getBeanNameFromTableName($remoteFK->getForeignTableName());
397
+		$variableName = '$'.TDBMDaoGenerator::toVariableName($remoteBeanName);
398
+
399
+		$str = '    /**
400 400
      * Returns the list of %s associated to this bean via the %s pivot table.
401 401
      *
402 402
      * @return %s[]
@@ -406,9 +406,9 @@  discard block
 block discarded – undo
406 406
     }
407 407
 ';
408 408
 
409
-        $getterCode = sprintf($str, $remoteBeanName, $table->getName(), $remoteBeanName, $name, var_export($remoteFK->getLocalTableName(), true));
409
+		$getterCode = sprintf($str, $remoteBeanName, $table->getName(), $remoteBeanName, $name, var_export($remoteFK->getLocalTableName(), true));
410 410
 
411
-        $str = '    /**
411
+		$str = '    /**
412 412
      * Adds a relationship with %s associated to this bean via the %s pivot table.
413 413
      *
414 414
      * @param %s %s
@@ -418,9 +418,9 @@  discard block
 block discarded – undo
418 418
     }
419 419
 ';
420 420
 
421
-        $adderCode = sprintf($str, $remoteBeanName, $table->getName(), $remoteBeanName, $variableName, $singularName, $remoteBeanName, $variableName, var_export($remoteFK->getLocalTableName(), true), $variableName);
421
+		$adderCode = sprintf($str, $remoteBeanName, $table->getName(), $remoteBeanName, $variableName, $singularName, $remoteBeanName, $variableName, var_export($remoteFK->getLocalTableName(), true), $variableName);
422 422
 
423
-        $str = '    /**
423
+		$str = '    /**
424 424
      * Deletes the relationship with %s associated to this bean via the %s pivot table.
425 425
      *
426 426
      * @param %s %s
@@ -430,9 +430,9 @@  discard block
 block discarded – undo
430 430
     }
431 431
 ';
432 432
 
433
-        $removerCode = sprintf($str, $remoteBeanName, $table->getName(), $remoteBeanName, $variableName, $singularName, $remoteBeanName, $variableName, var_export($remoteFK->getLocalTableName(), true), $variableName);
433
+		$removerCode = sprintf($str, $remoteBeanName, $table->getName(), $remoteBeanName, $variableName, $singularName, $remoteBeanName, $variableName, var_export($remoteFK->getLocalTableName(), true), $variableName);
434 434
 
435
-        $str = '    /**
435
+		$str = '    /**
436 436
      * Returns whether this bean is associated with %s via the %s pivot table.
437 437
      *
438 438
      * @param %s %s
@@ -443,24 +443,24 @@  discard block
 block discarded – undo
443 443
     }
444 444
 ';
445 445
 
446
-        $hasCode = sprintf($str, $remoteBeanName, $table->getName(), $remoteBeanName, $variableName, $singularName, $remoteBeanName, $variableName, var_export($remoteFK->getLocalTableName(), true), $variableName);
446
+		$hasCode = sprintf($str, $remoteBeanName, $table->getName(), $remoteBeanName, $variableName, $singularName, $remoteBeanName, $variableName, var_export($remoteFK->getLocalTableName(), true), $variableName);
447 447
 
448 448
 
449
-        $code = $getterCode.$adderCode.$removerCode.$hasCode;
449
+		$code = $getterCode.$adderCode.$removerCode.$hasCode;
450 450
 
451
-        return $code;
452
-    }
451
+		return $code;
452
+	}
453 453
 
454
-    public function generateJsonSerialize() {
455
-        $tableName = $this->table->getName();
456
-        $parentFk = $this->schemaAnalyzer->getParentRelationship($tableName);
457
-        if ($parentFk !== null) {
458
-            $initializer = '$array = parent::jsonSerialize();';
459
-        } else {
460
-            $initializer = '$array = [];';
461
-        }
454
+	public function generateJsonSerialize() {
455
+		$tableName = $this->table->getName();
456
+		$parentFk = $this->schemaAnalyzer->getParentRelationship($tableName);
457
+		if ($parentFk !== null) {
458
+			$initializer = '$array = parent::jsonSerialize();';
459
+		} else {
460
+			$initializer = '$array = [];';
461
+		}
462 462
 
463
-        $str = '
463
+		$str = '
464 464
     /**
465 465
      * Serializes the object for JSON encoding
466 466
      *
@@ -476,53 +476,53 @@  discard block
 block discarded – undo
476 476
     }
477 477
 ';
478 478
 
479
-        $propertiesCode = '';
480
-        foreach ($this->beanPropertyDescriptors as $beanPropertyDescriptor) {
481
-            $propertiesCode .= $beanPropertyDescriptor->getJsonSerializeCode();
482
-        }
479
+		$propertiesCode = '';
480
+		foreach ($this->beanPropertyDescriptors as $beanPropertyDescriptor) {
481
+			$propertiesCode .= $beanPropertyDescriptor->getJsonSerializeCode();
482
+		}
483 483
 
484
-        // Many to many relationships:
484
+		// Many to many relationships:
485 485
 
486
-        $descs = $this->getPivotTableDescriptors();
486
+		$descs = $this->getPivotTableDescriptors();
487 487
 
488
-        $many2manyCode = '';
488
+		$many2manyCode = '';
489 489
 
490
-        foreach ($descs as $desc) {
491
-            $remoteFK = $desc['remoteFK'];
492
-            $remoteBeanName = TDBMDaoGenerator::getBeanNameFromTableName($remoteFK->getForeignTableName());
493
-            $variableName = '$'.TDBMDaoGenerator::toVariableName($remoteBeanName);
490
+		foreach ($descs as $desc) {
491
+			$remoteFK = $desc['remoteFK'];
492
+			$remoteBeanName = TDBMDaoGenerator::getBeanNameFromTableName($remoteFK->getForeignTableName());
493
+			$variableName = '$'.TDBMDaoGenerator::toVariableName($remoteBeanName);
494 494
 
495
-            $many2manyCode .= '        if (!$stopRecursion) {
495
+			$many2manyCode .= '        if (!$stopRecursion) {
496 496
             $array[\''.lcfirst($desc['name']).'\'] = array_map(function('.$remoteBeanName.' '.$variableName.') {
497 497
                 return '.$variableName.'->jsonSerialize(true);
498 498
             }, $this->get'.$desc['name'].'());
499 499
         }
500 500
         ';
501
-        }
502
-
503
-        return sprintf($str, $initializer, $propertiesCode, $many2manyCode);
504
-    }
505
-
506
-    /**
507
-     * Writes the PHP bean file with all getters and setters from the table passed in parameter.
508
-     *
509
-     * @param string $beannamespace The namespace of the bean
510
-     */
511
-    public function generatePhpCode($beannamespace) {
512
-        $baseClassName = TDBMDaoGenerator::getBaseBeanNameFromTableName($this->table->getName());
513
-        $className = TDBMDaoGenerator::getBeanNameFromTableName($this->table->getName());
514
-        $tableName = $this->table->getName();
515
-
516
-        $parentFk = $this->schemaAnalyzer->getParentRelationship($tableName);
517
-        if ($parentFk !== null) {
518
-            $extends = TDBMDaoGenerator::getBeanNameFromTableName($parentFk->getForeignTableName());
519
-            $use = "";
520
-        } else {
521
-            $extends = "AbstractTDBMObject";
522
-            $use = "use Mouf\\Database\\TDBM\\AbstractTDBMObject;\n\n";
523
-        }
524
-
525
-        $str = "<?php
501
+		}
502
+
503
+		return sprintf($str, $initializer, $propertiesCode, $many2manyCode);
504
+	}
505
+
506
+	/**
507
+	 * Writes the PHP bean file with all getters and setters from the table passed in parameter.
508
+	 *
509
+	 * @param string $beannamespace The namespace of the bean
510
+	 */
511
+	public function generatePhpCode($beannamespace) {
512
+		$baseClassName = TDBMDaoGenerator::getBaseBeanNameFromTableName($this->table->getName());
513
+		$className = TDBMDaoGenerator::getBeanNameFromTableName($this->table->getName());
514
+		$tableName = $this->table->getName();
515
+
516
+		$parentFk = $this->schemaAnalyzer->getParentRelationship($tableName);
517
+		if ($parentFk !== null) {
518
+			$extends = TDBMDaoGenerator::getBeanNameFromTableName($parentFk->getForeignTableName());
519
+			$use = "";
520
+		} else {
521
+			$extends = "AbstractTDBMObject";
522
+			$use = "use Mouf\\Database\\TDBM\\AbstractTDBMObject;\n\n";
523
+		}
524
+
525
+		$str = "<?php
526 526
 namespace {$beannamespace};
527 527
 
528 528
 use Mouf\\Database\\TDBM\\ResultIterator;
@@ -540,20 +540,20 @@  discard block
 block discarded – undo
540 540
 {
541 541
 ";
542 542
 
543
-        $str .= $this->generateBeanConstructor();
543
+		$str .= $this->generateBeanConstructor();
544 544
 
545 545
 
546 546
 
547
-        foreach ($this->getExposedProperties() as $property) {
548
-            $str .= $property->getGetterSetterCode();
549
-        }
547
+		foreach ($this->getExposedProperties() as $property) {
548
+			$str .= $property->getGetterSetterCode();
549
+		}
550 550
 
551
-        $str .= $this->generateDirectForeignKeysCode();
552
-        $str .= $this->generatePivotTableCode();
553
-        $str .= $this->generateJsonSerialize();
551
+		$str .= $this->generateDirectForeignKeysCode();
552
+		$str .= $this->generatePivotTableCode();
553
+		$str .= $this->generateJsonSerialize();
554 554
 
555
-        $str .= "}
555
+		$str .= "}
556 556
 ";
557
-        return $str;
558
-    }
557
+		return $str;
558
+	}
559 559
 }
Please login to merge, or discard this patch.
src/Mouf/Database/TDBM/Controllers/TdbmController.php 2 patches
Indentation   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -59,10 +59,10 @@  discard block
 block discarded – undo
59 59
 		}
60 60
 				
61 61
 		if ($this->daoNamespace == null && $this->beanNamespace == null) {
62
-            $classNameMapper = ClassNameMapper::createFromComposerFile(__DIR__.'/../../../../../../../../composer.json');
62
+			$classNameMapper = ClassNameMapper::createFromComposerFile(__DIR__.'/../../../../../../../../composer.json');
63 63
 
64 64
 			$autoloadNamespaces = $classNameMapper->getManagedNamespaces();
65
-            if ($autoloadNamespaces) {
65
+			if ($autoloadNamespaces) {
66 66
 				$this->autoloadDetected = true;
67 67
 				$rootNamespace = $autoloadNamespaces[0];
68 68
 				$this->daoNamespace = $rootNamespace."Dao";
@@ -138,7 +138,7 @@  discard block
 block discarded – undo
138 138
 		
139 139
 		$tdbmService = new InstanceProxy($name);
140 140
 		/* @var $tdbmService TDBMService */
141
-        $tables = $tdbmService->generateAllDaosAndBeans($daofactoryclassname, $daonamespace, $beannamespace, $storeInUtc);
141
+		$tables = $tdbmService->generateAllDaosAndBeans($daofactoryclassname, $daonamespace, $beannamespace, $storeInUtc);
142 142
 
143 143
 
144 144
 		$moufManager->declareComponent($daofactoryinstancename, $daonamespace."\\".$daofactoryclassname, false, MoufManager::DECLARE_ON_EXIST_KEEP_INCOMING_LINKS);
Please login to merge, or discard this patch.
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -40,7 +40,7 @@  discard block
 block discarded – undo
40 40
 	 * @Action
41 41
 	 * //@Admin
42 42
 	 */
43
-	public function defaultAction($name, $selfedit="false") {
43
+	public function defaultAction($name, $selfedit = "false") {
44 44
 		$this->initController($name, $selfedit);
45 45
 		
46 46
 		// Fill variables
@@ -87,7 +87,7 @@  discard block
 block discarded – undo
87 87
 	 * @param string $name
88 88
 	 * @param bool $selfedit
89 89
 	 */
90
-	public function generate($name, $daonamespace, $beannamespace, $daofactoryclassname, $daofactoryinstancename, $storeInUtc = 0, $selfedit="false") {
90
+	public function generate($name, $daonamespace, $beannamespace, $daofactoryclassname, $daofactoryinstancename, $storeInUtc = 0, $selfedit = "false") {
91 91
 		$this->initController($name, $selfedit);
92 92
 
93 93
 		self::generateDaos($this->moufManager, $name, $daonamespace, $beannamespace, $daofactoryclassname, $daofactoryinstancename, $selfedit, $storeInUtc);
@@ -108,7 +108,7 @@  discard block
 block discarded – undo
108 108
 	 * @param bool $storeInUtc
109 109
 	 * @throws \Mouf\MoufException
110 110
 	 */
111
-	public static function generateDaos(MoufManager $moufManager, $name, $daonamespace, $beannamespace, $daofactoryclassname, $daofactoryinstancename, $selfedit="false", $storeInUtc = null) {
111
+	public static function generateDaos(MoufManager $moufManager, $name, $daonamespace, $beannamespace, $daofactoryclassname, $daofactoryinstancename, $selfedit = "false", $storeInUtc = null) {
112 112
 		$moufManager->setVariable("tdbmDefaultDaoNamespace_".$name, $daonamespace);
113 113
 		$moufManager->setVariable("tdbmDefaultBeanNamespace_".$name, $beannamespace);
114 114
 		$moufManager->setVariable("tdbmDefaultDaoFactoryName_".$name, $daofactoryclassname);
@@ -155,7 +155,7 @@  discard block
 block discarded – undo
155 155
 			$moufManager->bindComponentViaSetter($instanceName, "setTdbmService", $name);
156 156
 			$moufManager->bindComponentViaSetter($daofactoryinstancename, "set".$daoName, $instanceName);
157 157
 
158
-			$tableToBeanMap[$table] = $beannamespace . "\\" . TDBMDaoGenerator::getBeanNameFromTableName($table);
158
+			$tableToBeanMap[$table] = $beannamespace."\\".TDBMDaoGenerator::getBeanNameFromTableName($table);
159 159
 		}
160 160
 		$tdbmServiceDescriptor = $moufManager->getInstanceDescriptor($name);
161 161
 		$tdbmServiceDescriptor->getSetterProperty("setTableToBeanMap")->setValue($tableToBeanMap);
Please login to merge, or discard this patch.