Completed
Pull Request — 4.0 (#48)
by Marc
06:02
created
src/Mouf/Database/TDBM/InnerResultArray.php 2 patches
Indentation   +89 added lines, -89 removed lines patch added patch discarded remove patch
@@ -27,100 +27,100 @@
 block discarded – undo
27 27
  */
28 28
 class InnerResultArray extends InnerResultIterator
29 29
 {
30
-    /**
31
-     * The list of results already fetched.
32
-     *
33
-     * @var AbstractTDBMObject[]
34
-     */
35
-    private $results = [];
30
+	/**
31
+	 * The list of results already fetched.
32
+	 *
33
+	 * @var AbstractTDBMObject[]
34
+	 */
35
+	private $results = [];
36 36
 
37
-    /**
38
-     * Whether a offset exists.
39
-     *
40
-     * @link http://php.net/manual/en/arrayaccess.offsetexists.php
41
-     *
42
-     * @param mixed $offset <p>
43
-     *                      An offset to check for.
44
-     *                      </p>
45
-     *
46
-     * @return bool true on success or false on failure.
47
-     *              </p>
48
-     *              <p>
49
-     *              The return value will be casted to boolean if non-boolean was returned.
50
-     *
51
-     * @since 5.0.0
52
-     */
53
-    public function offsetExists($offset)
54
-    {
55
-        try {
56
-            $this->toIndex($offset);
57
-        } catch (TDBMInvalidOffsetException $e) {
58
-            return false;
59
-        }
37
+	/**
38
+	 * Whether a offset exists.
39
+	 *
40
+	 * @link http://php.net/manual/en/arrayaccess.offsetexists.php
41
+	 *
42
+	 * @param mixed $offset <p>
43
+	 *                      An offset to check for.
44
+	 *                      </p>
45
+	 *
46
+	 * @return bool true on success or false on failure.
47
+	 *              </p>
48
+	 *              <p>
49
+	 *              The return value will be casted to boolean if non-boolean was returned.
50
+	 *
51
+	 * @since 5.0.0
52
+	 */
53
+	public function offsetExists($offset)
54
+	{
55
+		try {
56
+			$this->toIndex($offset);
57
+		} catch (TDBMInvalidOffsetException $e) {
58
+			return false;
59
+		}
60 60
 
61
-        return true;
62
-    }
61
+		return true;
62
+	}
63 63
 
64
-    /**
65
-     * Offset to retrieve.
66
-     *
67
-     * @link http://php.net/manual/en/arrayaccess.offsetget.php
68
-     *
69
-     * @param mixed $offset <p>
70
-     *                      The offset to retrieve.
71
-     *                      </p>
72
-     *
73
-     * @return mixed Can return all value types.
74
-     *
75
-     * @since 5.0.0
76
-     */
77
-    public function offsetGet($offset)
78
-    {
79
-        $this->toIndex($offset);
64
+	/**
65
+	 * Offset to retrieve.
66
+	 *
67
+	 * @link http://php.net/manual/en/arrayaccess.offsetget.php
68
+	 *
69
+	 * @param mixed $offset <p>
70
+	 *                      The offset to retrieve.
71
+	 *                      </p>
72
+	 *
73
+	 * @return mixed Can return all value types.
74
+	 *
75
+	 * @since 5.0.0
76
+	 */
77
+	public function offsetGet($offset)
78
+	{
79
+		$this->toIndex($offset);
80 80
 
81
-        return $this->results[$offset];
82
-    }
81
+		return $this->results[$offset];
82
+	}
83 83
 
84
-    private function toIndex($offset)
85
-    {
86
-        if ($offset < 0 || filter_var($offset, FILTER_VALIDATE_INT) === false) {
87
-            throw new TDBMInvalidOffsetException('Trying to access result set using offset "'.$offset.'". An offset must be a positive integer.');
88
-        }
89
-        if ($this->statement === null) {
90
-            $this->executeQuery();
91
-        }
92
-        while (!isset($this->results[$offset])) {
93
-            $this->next();
94
-            if ($this->current === null) {
95
-                throw new TDBMInvalidOffsetException('Offset "'.$offset.'" does not exist in result set.');
96
-            }
97
-        }
98
-    }
84
+	private function toIndex($offset)
85
+	{
86
+		if ($offset < 0 || filter_var($offset, FILTER_VALIDATE_INT) === false) {
87
+			throw new TDBMInvalidOffsetException('Trying to access result set using offset "'.$offset.'". An offset must be a positive integer.');
88
+		}
89
+		if ($this->statement === null) {
90
+			$this->executeQuery();
91
+		}
92
+		while (!isset($this->results[$offset])) {
93
+			$this->next();
94
+			if ($this->current === null) {
95
+				throw new TDBMInvalidOffsetException('Offset "'.$offset.'" does not exist in result set.');
96
+			}
97
+		}
98
+	}
99 99
 
100
-    public function next()
101
-    {
102
-        // Let's overload the next() method to store the result.
103
-        if (isset($this->results[$this->key + 1])) {
104
-            ++$this->key;
105
-            $this->current = $this->results[$this->key];
106
-        } else {
107
-            parent::next();
108
-            if ($this->current !== null) {
109
-                $this->results[$this->key] = $this->current;
110
-            }
111
-        }
112
-    }
100
+	public function next()
101
+	{
102
+		// Let's overload the next() method to store the result.
103
+		if (isset($this->results[$this->key + 1])) {
104
+			++$this->key;
105
+			$this->current = $this->results[$this->key];
106
+		} else {
107
+			parent::next();
108
+			if ($this->current !== null) {
109
+				$this->results[$this->key] = $this->current;
110
+			}
111
+		}
112
+	}
113 113
 
114
-    /**
115
-     * Overloads the rewind implementation.
116
-     * Do not reexecute the query.
117
-     */
118
-    public function rewind()
119
-    {
120
-        if (!$this->fetchStarted) {
121
-            $this->executeQuery();
122
-        }
123
-        $this->key = -1;
124
-        $this->next();
125
-    }
114
+	/**
115
+	 * Overloads the rewind implementation.
116
+	 * Do not reexecute the query.
117
+	 */
118
+	public function rewind()
119
+	{
120
+		if (!$this->fetchStarted) {
121
+			$this->executeQuery();
122
+		}
123
+		$this->key = -1;
124
+		$this->next();
125
+	}
126 126
 }
Please login to merge, or discard this patch.
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -83,7 +83,7 @@  discard block
 block discarded – undo
83 83
 
84 84
     private function toIndex($offset)
85 85
     {
86
-        if ($offset < 0 || filter_var($offset, FILTER_VALIDATE_INT) === false) {
86
+        if ($offset<0 || filter_var($offset, FILTER_VALIDATE_INT) === false) {
87 87
             throw new TDBMInvalidOffsetException('Trying to access result set using offset "'.$offset.'". An offset must be a positive integer.');
88 88
         }
89 89
         if ($this->statement === null) {
@@ -100,7 +100,7 @@  discard block
 block discarded – undo
100 100
     public function next()
101 101
     {
102 102
         // Let's overload the next() method to store the result.
103
-        if (isset($this->results[$this->key + 1])) {
103
+        if (isset($this->results[$this->key+1])) {
104 104
             ++$this->key;
105 105
             $this->current = $this->results[$this->key];
106 106
         } else {
Please login to merge, or discard this patch.
src/Mouf/Database/TDBM/TDBMObjectStateEnum.php 1 patch
Indentation   +6 added lines, -6 removed lines patch added patch discarded remove patch
@@ -27,10 +27,10 @@
 block discarded – undo
27 27
  */
28 28
 final class TDBMObjectStateEnum extends AbstractTDBMObject
29 29
 {
30
-    const STATE_DETACHED = 'detached';
31
-    const STATE_NEW = 'new';
32
-    const STATE_NOT_LOADED = 'not loaded';
33
-    const STATE_LOADED = 'loaded';
34
-    const STATE_DIRTY = 'dirty';
35
-    const STATE_DELETED = 'deleted';
30
+	const STATE_DETACHED = 'detached';
31
+	const STATE_NEW = 'new';
32
+	const STATE_NOT_LOADED = 'not loaded';
33
+	const STATE_LOADED = 'loaded';
34
+	const STATE_DIRTY = 'dirty';
35
+	const STATE_DELETED = 'deleted';
36 36
 }
Please login to merge, or discard this patch.
src/Mouf/Database/TDBM/DbRow.php 2 patches
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -353,7 +353,7 @@
 block discarded – undo
353 353
             $pkValues = array_values($firstRefDbRow->_getPrimaryKeys());
354 354
             $localColumns = $fk->getLocalColumns();
355 355
 
356
-            for ($i = 0, $count = count($localColumns); $i < $count; ++$i) {
356
+            for ($i = 0, $count = count($localColumns); $i<$count; ++$i) {
357 357
                 $dbRow[$localColumns[$i]] = $pkValues[$i];
358 358
             }
359 359
         }
Please login to merge, or discard this patch.
Indentation   +363 added lines, -363 removed lines patch added patch discarded remove patch
@@ -27,163 +27,163 @@  discard block
 block discarded – undo
27 27
  */
28 28
 class DbRow
29 29
 {
30
-    /**
31
-     * The service this object is bound to.
32
-     *
33
-     * @var TDBMService
34
-     */
35
-    protected $tdbmService;
36
-
37
-    /**
38
-     * The object containing this db row.
39
-     *
40
-     * @var AbstractTDBMObject
41
-     */
42
-    private $object;
43
-
44
-    /**
45
-     * The name of the table the object if issued from.
46
-     *
47
-     * @var string
48
-     */
49
-    private $dbTableName;
50
-
51
-    /**
52
-     * The array of columns returned from database.
53
-     *
54
-     * @var array
55
-     */
56
-    private $dbRow = array();
57
-
58
-    /**
59
-     * @var AbstractTDBMObject[]
60
-     */
61
-    private $references = array();
62
-
63
-    /**
64
-     * One of TDBMObjectStateEnum::STATE_NEW, TDBMObjectStateEnum::STATE_NOT_LOADED, TDBMObjectStateEnum::STATE_LOADED, TDBMObjectStateEnum::STATE_DELETED.
65
-     * $status = TDBMObjectStateEnum::STATE_NEW when a new object is created with DBMObject:getNewObject.
66
-     * $status = TDBMObjectStateEnum::STATE_NOT_LOADED when the object has been retrieved with getObject but when no data has been accessed in it yet.
67
-     * $status = TDBMObjectStateEnum::STATE_LOADED when the object is cached in memory.
68
-     *
69
-     * @var string
70
-     */
71
-    private $status;
72
-
73
-    /**
74
-     * The values of the primary key.
75
-     * This is set when the object is in "loaded" state.
76
-     *
77
-     * @var array An array of column => value
78
-     */
79
-    private $primaryKeys;
80
-
81
-    /**
82
-     * You should never call the constructor directly. Instead, you should use the
83
-     * TDBMService class that will create TDBMObjects for you.
84
-     *
85
-     * Used with id!=false when we want to retrieve an existing object
86
-     * and id==false if we want a new object
87
-     *
88
-     * @param AbstractTDBMObject $object      The object containing this db row.
89
-     * @param string             $table_name
90
-     * @param array              $primaryKeys
91
-     * @param TDBMService        $tdbmService
92
-     *
93
-     * @throws TDBMException
94
-     * @throws TDBMInvalidOperationException
95
-     */
96
-    public function __construct(AbstractTDBMObject $object, $table_name, array $primaryKeys = array(), TDBMService $tdbmService = null, array $dbRow = array())
97
-    {
98
-        $this->object = $object;
99
-        $this->dbTableName = $table_name;
100
-
101
-        $this->status = TDBMObjectStateEnum::STATE_DETACHED;
102
-
103
-        if ($tdbmService === null) {
104
-            if (!empty($primaryKeys)) {
105
-                throw new TDBMException('You cannot pass an id to the DbRow constructor without passing also a TDBMService.');
106
-            }
107
-        } else {
108
-            $this->tdbmService = $tdbmService;
109
-
110
-            if (!empty($primaryKeys)) {
111
-                $this->_setPrimaryKeys($primaryKeys);
112
-                if (!empty($dbRow)) {
113
-                    $this->dbRow = $dbRow;
114
-                    $this->status = TDBMObjectStateEnum::STATE_LOADED;
115
-                } else {
116
-                    $this->status = TDBMObjectStateEnum::STATE_NOT_LOADED;
117
-                }
118
-                $tdbmService->_addToCache($this);
119
-            } else {
120
-                $this->status = TDBMObjectStateEnum::STATE_NEW;
121
-                $this->tdbmService->_addToToSaveObjectList($this);
122
-            }
123
-        }
124
-    }
125
-
126
-    public function _attach(TDBMService $tdbmService)
127
-    {
128
-        if ($this->status !== TDBMObjectStateEnum::STATE_DETACHED) {
129
-            throw new TDBMInvalidOperationException('Cannot attach an object that is already attached to TDBM.');
130
-        }
131
-        $this->tdbmService = $tdbmService;
132
-        $this->status = TDBMObjectStateEnum::STATE_NEW;
133
-        $this->tdbmService->_addToToSaveObjectList($this);
134
-    }
135
-
136
-    /**
137
-     * Sets the state of the TDBM Object
138
-     * One of TDBMObjectStateEnum::STATE_NEW, TDBMObjectStateEnum::STATE_NOT_LOADED, TDBMObjectStateEnum::STATE_LOADED, TDBMObjectStateEnum::STATE_DELETED.
139
-     * $status = TDBMObjectStateEnum::STATE_NEW when a new object is created with DBMObject:getNewObject.
140
-     * $status = TDBMObjectStateEnum::STATE_NOT_LOADED when the object has been retrieved with getObject but when no data has been accessed in it yet.
141
-     * $status = TDBMObjectStateEnum::STATE_LOADED when the object is cached in memory.
142
-     *
143
-     * @param string $state
144
-     */
145
-    public function _setStatus($state)
146
-    {
147
-        $this->status = $state;
148
-    }
149
-
150
-    /**
151
-     * This is an internal method. You should not call this method yourself. The TDBM library will do it for you.
152
-     * If the object is in state 'not loaded', this method performs a query in database to load the object.
153
-     *
154
-     * A TDBMException is thrown is no object can be retrieved (for instance, if the primary key specified
155
-     * cannot be found).
156
-     */
157
-    public function _dbLoadIfNotLoaded()
158
-    {
159
-        if ($this->status == TDBMObjectStateEnum::STATE_NOT_LOADED) {
160
-            $connection = $this->tdbmService->getConnection();
161
-
162
-            /// buildFilterFromFilterBag($filter_bag)
163
-            list($sql_where, $parameters) = $this->tdbmService->buildFilterFromFilterBag($this->primaryKeys);
164
-
165
-            $sql = 'SELECT * FROM '.$connection->quoteIdentifier($this->dbTableName).' WHERE '.$sql_where;
166
-            $result = $connection->executeQuery($sql, $parameters);
167
-
168
-            if ($result->rowCount() === 0) {
169
-                throw new TDBMException("Could not retrieve object from table \"$this->dbTableName\" using filter \"\".");
170
-            }
171
-
172
-            $this->dbRow = $result->fetch(\PDO::FETCH_ASSOC);
173
-
174
-            $result->closeCursor();
175
-
176
-            $this->status = TDBMObjectStateEnum::STATE_LOADED;
177
-        }
178
-    }
179
-
180
-    public function get($var)
181
-    {
182
-        $this->_dbLoadIfNotLoaded();
183
-
184
-        // Let's first check if the key exist.
185
-        if (!isset($this->dbRow[$var])) {
186
-            /*
30
+	/**
31
+	 * The service this object is bound to.
32
+	 *
33
+	 * @var TDBMService
34
+	 */
35
+	protected $tdbmService;
36
+
37
+	/**
38
+	 * The object containing this db row.
39
+	 *
40
+	 * @var AbstractTDBMObject
41
+	 */
42
+	private $object;
43
+
44
+	/**
45
+	 * The name of the table the object if issued from.
46
+	 *
47
+	 * @var string
48
+	 */
49
+	private $dbTableName;
50
+
51
+	/**
52
+	 * The array of columns returned from database.
53
+	 *
54
+	 * @var array
55
+	 */
56
+	private $dbRow = array();
57
+
58
+	/**
59
+	 * @var AbstractTDBMObject[]
60
+	 */
61
+	private $references = array();
62
+
63
+	/**
64
+	 * One of TDBMObjectStateEnum::STATE_NEW, TDBMObjectStateEnum::STATE_NOT_LOADED, TDBMObjectStateEnum::STATE_LOADED, TDBMObjectStateEnum::STATE_DELETED.
65
+	 * $status = TDBMObjectStateEnum::STATE_NEW when a new object is created with DBMObject:getNewObject.
66
+	 * $status = TDBMObjectStateEnum::STATE_NOT_LOADED when the object has been retrieved with getObject but when no data has been accessed in it yet.
67
+	 * $status = TDBMObjectStateEnum::STATE_LOADED when the object is cached in memory.
68
+	 *
69
+	 * @var string
70
+	 */
71
+	private $status;
72
+
73
+	/**
74
+	 * The values of the primary key.
75
+	 * This is set when the object is in "loaded" state.
76
+	 *
77
+	 * @var array An array of column => value
78
+	 */
79
+	private $primaryKeys;
80
+
81
+	/**
82
+	 * You should never call the constructor directly. Instead, you should use the
83
+	 * TDBMService class that will create TDBMObjects for you.
84
+	 *
85
+	 * Used with id!=false when we want to retrieve an existing object
86
+	 * and id==false if we want a new object
87
+	 *
88
+	 * @param AbstractTDBMObject $object      The object containing this db row.
89
+	 * @param string             $table_name
90
+	 * @param array              $primaryKeys
91
+	 * @param TDBMService        $tdbmService
92
+	 *
93
+	 * @throws TDBMException
94
+	 * @throws TDBMInvalidOperationException
95
+	 */
96
+	public function __construct(AbstractTDBMObject $object, $table_name, array $primaryKeys = array(), TDBMService $tdbmService = null, array $dbRow = array())
97
+	{
98
+		$this->object = $object;
99
+		$this->dbTableName = $table_name;
100
+
101
+		$this->status = TDBMObjectStateEnum::STATE_DETACHED;
102
+
103
+		if ($tdbmService === null) {
104
+			if (!empty($primaryKeys)) {
105
+				throw new TDBMException('You cannot pass an id to the DbRow constructor without passing also a TDBMService.');
106
+			}
107
+		} else {
108
+			$this->tdbmService = $tdbmService;
109
+
110
+			if (!empty($primaryKeys)) {
111
+				$this->_setPrimaryKeys($primaryKeys);
112
+				if (!empty($dbRow)) {
113
+					$this->dbRow = $dbRow;
114
+					$this->status = TDBMObjectStateEnum::STATE_LOADED;
115
+				} else {
116
+					$this->status = TDBMObjectStateEnum::STATE_NOT_LOADED;
117
+				}
118
+				$tdbmService->_addToCache($this);
119
+			} else {
120
+				$this->status = TDBMObjectStateEnum::STATE_NEW;
121
+				$this->tdbmService->_addToToSaveObjectList($this);
122
+			}
123
+		}
124
+	}
125
+
126
+	public function _attach(TDBMService $tdbmService)
127
+	{
128
+		if ($this->status !== TDBMObjectStateEnum::STATE_DETACHED) {
129
+			throw new TDBMInvalidOperationException('Cannot attach an object that is already attached to TDBM.');
130
+		}
131
+		$this->tdbmService = $tdbmService;
132
+		$this->status = TDBMObjectStateEnum::STATE_NEW;
133
+		$this->tdbmService->_addToToSaveObjectList($this);
134
+	}
135
+
136
+	/**
137
+	 * Sets the state of the TDBM Object
138
+	 * One of TDBMObjectStateEnum::STATE_NEW, TDBMObjectStateEnum::STATE_NOT_LOADED, TDBMObjectStateEnum::STATE_LOADED, TDBMObjectStateEnum::STATE_DELETED.
139
+	 * $status = TDBMObjectStateEnum::STATE_NEW when a new object is created with DBMObject:getNewObject.
140
+	 * $status = TDBMObjectStateEnum::STATE_NOT_LOADED when the object has been retrieved with getObject but when no data has been accessed in it yet.
141
+	 * $status = TDBMObjectStateEnum::STATE_LOADED when the object is cached in memory.
142
+	 *
143
+	 * @param string $state
144
+	 */
145
+	public function _setStatus($state)
146
+	{
147
+		$this->status = $state;
148
+	}
149
+
150
+	/**
151
+	 * This is an internal method. You should not call this method yourself. The TDBM library will do it for you.
152
+	 * If the object is in state 'not loaded', this method performs a query in database to load the object.
153
+	 *
154
+	 * A TDBMException is thrown is no object can be retrieved (for instance, if the primary key specified
155
+	 * cannot be found).
156
+	 */
157
+	public function _dbLoadIfNotLoaded()
158
+	{
159
+		if ($this->status == TDBMObjectStateEnum::STATE_NOT_LOADED) {
160
+			$connection = $this->tdbmService->getConnection();
161
+
162
+			/// buildFilterFromFilterBag($filter_bag)
163
+			list($sql_where, $parameters) = $this->tdbmService->buildFilterFromFilterBag($this->primaryKeys);
164
+
165
+			$sql = 'SELECT * FROM '.$connection->quoteIdentifier($this->dbTableName).' WHERE '.$sql_where;
166
+			$result = $connection->executeQuery($sql, $parameters);
167
+
168
+			if ($result->rowCount() === 0) {
169
+				throw new TDBMException("Could not retrieve object from table \"$this->dbTableName\" using filter \"\".");
170
+			}
171
+
172
+			$this->dbRow = $result->fetch(\PDO::FETCH_ASSOC);
173
+
174
+			$result->closeCursor();
175
+
176
+			$this->status = TDBMObjectStateEnum::STATE_LOADED;
177
+		}
178
+	}
179
+
180
+	public function get($var)
181
+	{
182
+		$this->_dbLoadIfNotLoaded();
183
+
184
+		// Let's first check if the key exist.
185
+		if (!isset($this->dbRow[$var])) {
186
+			/*
187 187
             // Unable to find column.... this is an error if the object has been retrieved from database.
188 188
             // If it's a new object, well, that may not be an error after all!
189 189
             // Let's check if the column does exist in the table
@@ -203,39 +203,39 @@  discard block
 block discarded – undo
203 203
             $str = "Could not find column \"$var\" in table \"$this->dbTableName\". Maybe you meant one of those columns: '".implode("', '",$result_array)."'";
204 204
 
205 205
             throw new TDBMException($str);*/
206
-            return;
207
-        }
208
-
209
-        $value = $this->dbRow[$var];
210
-        if ($value instanceof \DateTime) {
211
-            if (method_exists('DateTimeImmutable', 'createFromMutable')) { // PHP 5.6+ only
212
-                return \DateTimeImmutable::createFromMutable($value);
213
-            } else {
214
-                return new \DateTimeImmutable($value->format('c'));
215
-            }
216
-        }
217
-
218
-        return $this->dbRow[$var];
219
-    }
220
-
221
-    /**
222
-     * Returns true if a column is set, false otherwise.
223
-     *
224
-     * @param string $var
225
-     *
226
-     * @return bool
227
-     */
228
-    /*public function has($var) {
206
+			return;
207
+		}
208
+
209
+		$value = $this->dbRow[$var];
210
+		if ($value instanceof \DateTime) {
211
+			if (method_exists('DateTimeImmutable', 'createFromMutable')) { // PHP 5.6+ only
212
+				return \DateTimeImmutable::createFromMutable($value);
213
+			} else {
214
+				return new \DateTimeImmutable($value->format('c'));
215
+			}
216
+		}
217
+
218
+		return $this->dbRow[$var];
219
+	}
220
+
221
+	/**
222
+	 * Returns true if a column is set, false otherwise.
223
+	 *
224
+	 * @param string $var
225
+	 *
226
+	 * @return bool
227
+	 */
228
+	/*public function has($var) {
229 229
         $this->_dbLoadIfNotLoaded();
230 230
 
231 231
         return isset($this->dbRow[$var]);
232 232
     }*/
233 233
 
234
-    public function set($var, $value)
235
-    {
236
-        $this->_dbLoadIfNotLoaded();
234
+	public function set($var, $value)
235
+	{
236
+		$this->_dbLoadIfNotLoaded();
237 237
 
238
-        /*
238
+		/*
239 239
         // Ok, let's start by checking the column type
240 240
         $type = $this->db_connection->getColumnType($this->dbTableName, $var);
241 241
 
@@ -245,184 +245,184 @@  discard block
 block discarded – undo
245 245
         }
246 246
         */
247 247
 
248
-        /*if ($var == $this->getPrimaryKey() && isset($this->dbRow[$var]))
248
+		/*if ($var == $this->getPrimaryKey() && isset($this->dbRow[$var]))
249 249
             throw new TDBMException("Error! Changing primary key value is forbidden.");*/
250
-        $this->dbRow[$var] = $value;
251
-        if ($this->tdbmService !== null && $this->status === TDBMObjectStateEnum::STATE_LOADED) {
252
-            $this->status = TDBMObjectStateEnum::STATE_DIRTY;
253
-            $this->tdbmService->_addToToSaveObjectList($this);
254
-        }
255
-    }
256
-
257
-    /**
258
-     * @param string             $foreignKeyName
259
-     * @param AbstractTDBMObject $bean
260
-     */
261
-    public function setRef($foreignKeyName, AbstractTDBMObject $bean = null)
262
-    {
263
-        $this->references[$foreignKeyName] = $bean;
264
-
265
-        if ($this->tdbmService !== null && $this->status === TDBMObjectStateEnum::STATE_LOADED) {
266
-            $this->status = TDBMObjectStateEnum::STATE_DIRTY;
267
-            $this->tdbmService->_addToToSaveObjectList($this);
268
-        }
269
-    }
270
-
271
-    /**
272
-     * @param string $foreignKeyName A unique name for this reference
273
-     *
274
-     * @return AbstractTDBMObject|null
275
-     */
276
-    public function getRef($foreignKeyName)
277
-    {
278
-        if (isset($this->references[$foreignKeyName])) {
279
-            return $this->references[$foreignKeyName];
280
-        } elseif ($this->status === TDBMObjectStateEnum::STATE_NEW) {
281
-            // If the object is new and has no property, then it has to be empty.
282
-            return;
283
-        } else {
284
-            $this->_dbLoadIfNotLoaded();
285
-
286
-            // Let's match the name of the columns to the primary key values
287
-            $fk = $this->tdbmService->_getForeignKeyByName($this->dbTableName, $foreignKeyName);
288
-
289
-            $values = [];
290
-            foreach ($fk->getLocalColumns() as $column) {
291
-                $values[] = $this->dbRow[$column];
292
-            }
293
-
294
-            $filter = array_combine($this->tdbmService->getPrimaryKeyColumns($fk->getForeignTableName()), $values);
295
-
296
-            return $this->tdbmService->findObjectByPk($fk->getForeignTableName(), $filter, [], true);
297
-        }
298
-    }
299
-
300
-    /**
301
-     * Returns the name of the table this object comes from.
302
-     *
303
-     * @return string
304
-     */
305
-    public function _getDbTableName()
306
-    {
307
-        return $this->dbTableName;
308
-    }
309
-
310
-    /**
311
-     * Method used internally by TDBM. You should not use it directly.
312
-     * This method returns the status of the TDBMObject.
313
-     * This is one of TDBMObjectStateEnum::STATE_NEW, TDBMObjectStateEnum::STATE_NOT_LOADED, TDBMObjectStateEnum::STATE_LOADED, TDBMObjectStateEnum::STATE_DELETED.
314
-     * $status = TDBMObjectStateEnum::STATE_NEW when a new object is created with DBMObject:getNewObject.
315
-     * $status = TDBMObjectStateEnum::STATE_NOT_LOADED when the object has been retrieved with getObject but when no data has been accessed in it yet.
316
-     * $status = TDBMObjectStateEnum::STATE_LOADED when the object is cached in memory.
317
-     *
318
-     * @return string
319
-     */
320
-    public function _getStatus()
321
-    {
322
-        return $this->status;
323
-    }
324
-
325
-    /**
326
-     * Override the native php clone function for TDBMObjects.
327
-     */
328
-    public function __clone()
329
-    {
330
-        // Let's load the row (before we lose the ID!)
331
-        $this->_dbLoadIfNotLoaded();
332
-
333
-        //Let's set the status to detached
334
-        $this->status = TDBMObjectStateEnum::STATE_DETACHED;
335
-
336
-        $this->primaryKeys = [];
337
-
338
-        //Now unset the PK from the row
339
-        if ($this->tdbmService) {
340
-            $pk_array = $this->tdbmService->getPrimaryKeyColumns($this->dbTableName);
341
-            foreach ($pk_array as $pk) {
342
-                $this->dbRow[$pk] = null;
343
-            }
344
-        }
345
-    }
346
-
347
-    /**
348
-     * Returns raw database row.
349
-     *
350
-     * @return array
351
-     */
352
-    public function _getDbRow()
353
-    {
354
-        // Let's merge $dbRow and $references
355
-        $dbRow = $this->dbRow;
356
-
357
-        foreach ($this->references as $foreignKeyName => $reference) {
358
-            // Let's match the name of the columns to the primary key values
359
-            $fk = $this->tdbmService->_getForeignKeyByName($this->dbTableName, $foreignKeyName);
360
-            $refDbRows = $reference->_getDbRows();
361
-            $firstRefDbRow = reset($refDbRows);
362
-            $pkValues = array_values($firstRefDbRow->_getPrimaryKeys());
363
-            $localColumns = $fk->getLocalColumns();
364
-
365
-            for ($i = 0, $count = count($localColumns); $i < $count; ++$i) {
366
-                $dbRow[$localColumns[$i]] = $pkValues[$i];
367
-            }
368
-        }
369
-
370
-        return $dbRow;
371
-    }
372
-
373
-    /**
374
-     * Returns references array.
375
-     *
376
-     * @return AbstractTDBMObject[]
377
-     */
378
-    public function _getReferences()
379
-    {
380
-        return $this->references;
381
-    }
382
-
383
-    /**
384
-     * Returns the values of the primary key.
385
-     * This is set when the object is in "loaded" state.
386
-     *
387
-     * @return array
388
-     */
389
-    public function _getPrimaryKeys()
390
-    {
391
-        return $this->primaryKeys;
392
-    }
393
-
394
-    /**
395
-     * Sets the values of the primary key.
396
-     * This is set when the object is in "loaded" state.
397
-     *
398
-     * @param array $primaryKeys
399
-     */
400
-    public function _setPrimaryKeys(array $primaryKeys)
401
-    {
402
-        $this->primaryKeys = $primaryKeys;
403
-        foreach ($this->primaryKeys as $column => $value) {
404
-            $this->dbRow[$column] = $value;
405
-        }
406
-    }
407
-
408
-    /**
409
-     * Returns the TDBMObject this bean is associated to.
410
-     *
411
-     * @return AbstractTDBMObject
412
-     */
413
-    public function getTDBMObject()
414
-    {
415
-        return $this->object;
416
-    }
417
-
418
-    /**
419
-     * Sets the TDBMObject this bean is associated to.
420
-     * Only used when cloning.
421
-     *
422
-     * @param AbstractTDBMObject $object
423
-     */
424
-    public function setTDBMObject(AbstractTDBMObject $object)
425
-    {
426
-        $this->object = $object;
427
-    }
250
+		$this->dbRow[$var] = $value;
251
+		if ($this->tdbmService !== null && $this->status === TDBMObjectStateEnum::STATE_LOADED) {
252
+			$this->status = TDBMObjectStateEnum::STATE_DIRTY;
253
+			$this->tdbmService->_addToToSaveObjectList($this);
254
+		}
255
+	}
256
+
257
+	/**
258
+	 * @param string             $foreignKeyName
259
+	 * @param AbstractTDBMObject $bean
260
+	 */
261
+	public function setRef($foreignKeyName, AbstractTDBMObject $bean = null)
262
+	{
263
+		$this->references[$foreignKeyName] = $bean;
264
+
265
+		if ($this->tdbmService !== null && $this->status === TDBMObjectStateEnum::STATE_LOADED) {
266
+			$this->status = TDBMObjectStateEnum::STATE_DIRTY;
267
+			$this->tdbmService->_addToToSaveObjectList($this);
268
+		}
269
+	}
270
+
271
+	/**
272
+	 * @param string $foreignKeyName A unique name for this reference
273
+	 *
274
+	 * @return AbstractTDBMObject|null
275
+	 */
276
+	public function getRef($foreignKeyName)
277
+	{
278
+		if (isset($this->references[$foreignKeyName])) {
279
+			return $this->references[$foreignKeyName];
280
+		} elseif ($this->status === TDBMObjectStateEnum::STATE_NEW) {
281
+			// If the object is new and has no property, then it has to be empty.
282
+			return;
283
+		} else {
284
+			$this->_dbLoadIfNotLoaded();
285
+
286
+			// Let's match the name of the columns to the primary key values
287
+			$fk = $this->tdbmService->_getForeignKeyByName($this->dbTableName, $foreignKeyName);
288
+
289
+			$values = [];
290
+			foreach ($fk->getLocalColumns() as $column) {
291
+				$values[] = $this->dbRow[$column];
292
+			}
293
+
294
+			$filter = array_combine($this->tdbmService->getPrimaryKeyColumns($fk->getForeignTableName()), $values);
295
+
296
+			return $this->tdbmService->findObjectByPk($fk->getForeignTableName(), $filter, [], true);
297
+		}
298
+	}
299
+
300
+	/**
301
+	 * Returns the name of the table this object comes from.
302
+	 *
303
+	 * @return string
304
+	 */
305
+	public function _getDbTableName()
306
+	{
307
+		return $this->dbTableName;
308
+	}
309
+
310
+	/**
311
+	 * Method used internally by TDBM. You should not use it directly.
312
+	 * This method returns the status of the TDBMObject.
313
+	 * This is one of TDBMObjectStateEnum::STATE_NEW, TDBMObjectStateEnum::STATE_NOT_LOADED, TDBMObjectStateEnum::STATE_LOADED, TDBMObjectStateEnum::STATE_DELETED.
314
+	 * $status = TDBMObjectStateEnum::STATE_NEW when a new object is created with DBMObject:getNewObject.
315
+	 * $status = TDBMObjectStateEnum::STATE_NOT_LOADED when the object has been retrieved with getObject but when no data has been accessed in it yet.
316
+	 * $status = TDBMObjectStateEnum::STATE_LOADED when the object is cached in memory.
317
+	 *
318
+	 * @return string
319
+	 */
320
+	public function _getStatus()
321
+	{
322
+		return $this->status;
323
+	}
324
+
325
+	/**
326
+	 * Override the native php clone function for TDBMObjects.
327
+	 */
328
+	public function __clone()
329
+	{
330
+		// Let's load the row (before we lose the ID!)
331
+		$this->_dbLoadIfNotLoaded();
332
+
333
+		//Let's set the status to detached
334
+		$this->status = TDBMObjectStateEnum::STATE_DETACHED;
335
+
336
+		$this->primaryKeys = [];
337
+
338
+		//Now unset the PK from the row
339
+		if ($this->tdbmService) {
340
+			$pk_array = $this->tdbmService->getPrimaryKeyColumns($this->dbTableName);
341
+			foreach ($pk_array as $pk) {
342
+				$this->dbRow[$pk] = null;
343
+			}
344
+		}
345
+	}
346
+
347
+	/**
348
+	 * Returns raw database row.
349
+	 *
350
+	 * @return array
351
+	 */
352
+	public function _getDbRow()
353
+	{
354
+		// Let's merge $dbRow and $references
355
+		$dbRow = $this->dbRow;
356
+
357
+		foreach ($this->references as $foreignKeyName => $reference) {
358
+			// Let's match the name of the columns to the primary key values
359
+			$fk = $this->tdbmService->_getForeignKeyByName($this->dbTableName, $foreignKeyName);
360
+			$refDbRows = $reference->_getDbRows();
361
+			$firstRefDbRow = reset($refDbRows);
362
+			$pkValues = array_values($firstRefDbRow->_getPrimaryKeys());
363
+			$localColumns = $fk->getLocalColumns();
364
+
365
+			for ($i = 0, $count = count($localColumns); $i < $count; ++$i) {
366
+				$dbRow[$localColumns[$i]] = $pkValues[$i];
367
+			}
368
+		}
369
+
370
+		return $dbRow;
371
+	}
372
+
373
+	/**
374
+	 * Returns references array.
375
+	 *
376
+	 * @return AbstractTDBMObject[]
377
+	 */
378
+	public function _getReferences()
379
+	{
380
+		return $this->references;
381
+	}
382
+
383
+	/**
384
+	 * Returns the values of the primary key.
385
+	 * This is set when the object is in "loaded" state.
386
+	 *
387
+	 * @return array
388
+	 */
389
+	public function _getPrimaryKeys()
390
+	{
391
+		return $this->primaryKeys;
392
+	}
393
+
394
+	/**
395
+	 * Sets the values of the primary key.
396
+	 * This is set when the object is in "loaded" state.
397
+	 *
398
+	 * @param array $primaryKeys
399
+	 */
400
+	public function _setPrimaryKeys(array $primaryKeys)
401
+	{
402
+		$this->primaryKeys = $primaryKeys;
403
+		foreach ($this->primaryKeys as $column => $value) {
404
+			$this->dbRow[$column] = $value;
405
+		}
406
+	}
407
+
408
+	/**
409
+	 * Returns the TDBMObject this bean is associated to.
410
+	 *
411
+	 * @return AbstractTDBMObject
412
+	 */
413
+	public function getTDBMObject()
414
+	{
415
+		return $this->object;
416
+	}
417
+
418
+	/**
419
+	 * Sets the TDBMObject this bean is associated to.
420
+	 * Only used when cloning.
421
+	 *
422
+	 * @param AbstractTDBMObject $object
423
+	 */
424
+	public function setTDBMObject(AbstractTDBMObject $object)
425
+	{
426
+		$this->object = $object;
427
+	}
428 428
 }
Please login to merge, or discard this patch.
src/Mouf/Database/TDBM/StandardObjectStorage.php 1 patch
Indentation   +69 added lines, -69 removed lines patch added patch discarded remove patch
@@ -30,78 +30,78 @@
 block discarded – undo
30 30
  */
31 31
 class StandardObjectStorage
32 32
 {
33
-    /**
34
-     * An array of fetched object, accessible via table name and primary key.
35
-     * If the primary key is split on several columns, access is done by an array of columns, serialized.
36
-     *
37
-     * @var array<string, array<string, TDBMObject>>
38
-     */
39
-    private $objects = array();
33
+	/**
34
+	 * An array of fetched object, accessible via table name and primary key.
35
+	 * If the primary key is split on several columns, access is done by an array of columns, serialized.
36
+	 *
37
+	 * @var array<string, array<string, TDBMObject>>
38
+	 */
39
+	private $objects = array();
40 40
 
41
-    /**
42
-     * Sets an object in the storage.
43
-     *
44
-     * @param string     $tableName
45
-     * @param string     $id
46
-     * @param TDBMObject $dbRow
47
-     */
48
-    public function set($tableName, $id, DbRow $dbRow)
49
-    {
50
-        $this->objects[$tableName][$id] = $dbRow;
51
-    }
41
+	/**
42
+	 * Sets an object in the storage.
43
+	 *
44
+	 * @param string     $tableName
45
+	 * @param string     $id
46
+	 * @param TDBMObject $dbRow
47
+	 */
48
+	public function set($tableName, $id, DbRow $dbRow)
49
+	{
50
+		$this->objects[$tableName][$id] = $dbRow;
51
+	}
52 52
 
53
-    /**
54
-     * Checks if an object is in the storage.
55
-     *
56
-     * @param string $tableName
57
-     * @param string $id
58
-     *
59
-     * @return bool
60
-     */
61
-    public function has($tableName, $id)
62
-    {
63
-        return isset($this->objects[$tableName][$id]);
64
-    }
53
+	/**
54
+	 * Checks if an object is in the storage.
55
+	 *
56
+	 * @param string $tableName
57
+	 * @param string $id
58
+	 *
59
+	 * @return bool
60
+	 */
61
+	public function has($tableName, $id)
62
+	{
63
+		return isset($this->objects[$tableName][$id]);
64
+	}
65 65
 
66
-    /**
67
-     * Returns an object from the storage (or null if no object is set).
68
-     *
69
-     * @param string $tableName
70
-     * @param string $id
71
-     *
72
-     * @return DbRow
73
-     */
74
-    public function get($tableName, $id)
75
-    {
76
-        if (isset($this->objects[$tableName][$id])) {
77
-            return $this->objects[$tableName][$id];
78
-        } else {
79
-            return;
80
-        }
81
-    }
66
+	/**
67
+	 * Returns an object from the storage (or null if no object is set).
68
+	 *
69
+	 * @param string $tableName
70
+	 * @param string $id
71
+	 *
72
+	 * @return DbRow
73
+	 */
74
+	public function get($tableName, $id)
75
+	{
76
+		if (isset($this->objects[$tableName][$id])) {
77
+			return $this->objects[$tableName][$id];
78
+		} else {
79
+			return;
80
+		}
81
+	}
82 82
 
83
-    /**
84
-     * Removes an object from the storage.
85
-     *
86
-     * @param string $tableName
87
-     * @param string $id
88
-     */
89
-    public function remove($tableName, $id)
90
-    {
91
-        unset($this->objects[$tableName][$id]);
92
-    }
83
+	/**
84
+	 * Removes an object from the storage.
85
+	 *
86
+	 * @param string $tableName
87
+	 * @param string $id
88
+	 */
89
+	public function remove($tableName, $id)
90
+	{
91
+		unset($this->objects[$tableName][$id]);
92
+	}
93 93
 
94
-    /**
95
-     * Applies the callback to all objects.
96
-     *
97
-     * @param callable $callback
98
-     */
99
-    public function apply(callable $callback)
100
-    {
101
-        foreach ($this->objects as $tableName => $table) {
102
-            foreach ($table as $id => $obj) {
103
-                $callback($obj, $tableName, $id);
104
-            }
105
-        }
106
-    }
94
+	/**
95
+	 * Applies the callback to all objects.
96
+	 *
97
+	 * @param callable $callback
98
+	 */
99
+	public function apply(callable $callback)
100
+	{
101
+		foreach ($this->objects as $tableName => $table) {
102
+			foreach ($table as $id => $obj) {
103
+				$callback($obj, $tableName, $id);
104
+			}
105
+		}
106
+	}
107 107
 }
Please login to merge, or discard this patch.
src/Mouf/Database/TDBM/PageIterator.php 2 patches
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -112,7 +112,7 @@  discard block
 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
     /**
@@ -251,7 +251,7 @@  discard block
 block discarded – undo
251 251
      */
252 252
     public function jsonSerialize()
253 253
     {
254
-        return array_map(function (AbstractTDBMObject $item) {
254
+        return array_map(function(AbstractTDBMObject $item) {
255 255
             return $item->jsonSerialize();
256 256
         }, $this->toArray());
257 257
     }
Please login to merge, or discard this patch.
Indentation   +206 added lines, -206 removed lines patch added patch discarded remove patch
@@ -29,232 +29,232 @@
 block discarded – undo
29 29
  */
30 30
 class PageIterator implements Page, \ArrayAccess, \JsonSerializable
31 31
 {
32
-    /**
33
-     * @var Statement
34
-     */
35
-    protected $statement;
32
+	/**
33
+	 * @var Statement
34
+	 */
35
+	protected $statement;
36 36
 
37
-    protected $fetchStarted = false;
38
-    private $objectStorage;
39
-    private $className;
37
+	protected $fetchStarted = false;
38
+	private $objectStorage;
39
+	private $className;
40 40
 
41
-    private $parentResult;
42
-    private $tdbmService;
43
-    private $magicSql;
44
-    private $parameters;
45
-    private $limit;
46
-    private $offset;
47
-    private $columnDescriptors;
48
-    private $magicQuery;
41
+	private $parentResult;
42
+	private $tdbmService;
43
+	private $magicSql;
44
+	private $parameters;
45
+	private $limit;
46
+	private $offset;
47
+	private $columnDescriptors;
48
+	private $magicQuery;
49 49
 
50
-    /**
51
-     * The key of the current retrieved object.
52
-     *
53
-     * @var int
54
-     */
55
-    protected $key = -1;
50
+	/**
51
+	 * The key of the current retrieved object.
52
+	 *
53
+	 * @var int
54
+	 */
55
+	protected $key = -1;
56 56
 
57
-    protected $current = null;
57
+	protected $current = null;
58 58
 
59
-    private $databasePlatform;
59
+	private $databasePlatform;
60 60
 
61
-    private $innerResultIterator;
61
+	private $innerResultIterator;
62 62
 
63
-    private $mode;
63
+	private $mode;
64 64
 
65
-    public function __construct(ResultIterator $parentResult, $magicSql, array $parameters, $limit, $offset, array $columnDescriptors, $objectStorage, $className, TDBMService $tdbmService, MagicQuery $magicQuery, $mode)
66
-    {
67
-        $this->parentResult = $parentResult;
68
-        $this->magicSql = $magicSql;
69
-        $this->objectStorage = $objectStorage;
70
-        $this->className = $className;
71
-        $this->tdbmService = $tdbmService;
72
-        $this->parameters = $parameters;
73
-        $this->limit = $limit;
74
-        $this->offset = $offset;
75
-        $this->columnDescriptors = $columnDescriptors;
76
-        $this->magicQuery = $magicQuery;
77
-        $this->databasePlatform = $this->tdbmService->getConnection()->getDatabasePlatform();
78
-        $this->mode = $mode;
79
-    }
65
+	public function __construct(ResultIterator $parentResult, $magicSql, array $parameters, $limit, $offset, array $columnDescriptors, $objectStorage, $className, TDBMService $tdbmService, MagicQuery $magicQuery, $mode)
66
+	{
67
+		$this->parentResult = $parentResult;
68
+		$this->magicSql = $magicSql;
69
+		$this->objectStorage = $objectStorage;
70
+		$this->className = $className;
71
+		$this->tdbmService = $tdbmService;
72
+		$this->parameters = $parameters;
73
+		$this->limit = $limit;
74
+		$this->offset = $offset;
75
+		$this->columnDescriptors = $columnDescriptors;
76
+		$this->magicQuery = $magicQuery;
77
+		$this->databasePlatform = $this->tdbmService->getConnection()->getDatabasePlatform();
78
+		$this->mode = $mode;
79
+	}
80 80
 
81
-    /**
82
-     * Retrieve an external iterator.
83
-     *
84
-     * @link http://php.net/manual/en/iteratoraggregate.getiterator.php
85
-     *
86
-     * @return InnerResultIterator An instance of an object implementing <b>Iterator</b> or
87
-     *                             <b>Traversable</b>
88
-     *
89
-     * @since 5.0.0
90
-     */
91
-    public function getIterator()
92
-    {
93
-        if ($this->innerResultIterator === null) {
94
-            if ($this->mode === TDBMService::MODE_CURSOR) {
95
-                $this->innerResultIterator = new InnerResultIterator($this->magicSql, $this->parameters, $this->limit, $this->offset, $this->columnDescriptors, $this->objectStorage, $this->className, $this->tdbmService, $this->magicQuery);
96
-            } else {
97
-                $this->innerResultIterator = new InnerResultArray($this->magicSql, $this->parameters, $this->limit, $this->offset, $this->columnDescriptors, $this->objectStorage, $this->className, $this->tdbmService, $this->magicQuery);
98
-            }
99
-        }
81
+	/**
82
+	 * Retrieve an external iterator.
83
+	 *
84
+	 * @link http://php.net/manual/en/iteratoraggregate.getiterator.php
85
+	 *
86
+	 * @return InnerResultIterator An instance of an object implementing <b>Iterator</b> or
87
+	 *                             <b>Traversable</b>
88
+	 *
89
+	 * @since 5.0.0
90
+	 */
91
+	public function getIterator()
92
+	{
93
+		if ($this->innerResultIterator === null) {
94
+			if ($this->mode === TDBMService::MODE_CURSOR) {
95
+				$this->innerResultIterator = new InnerResultIterator($this->magicSql, $this->parameters, $this->limit, $this->offset, $this->columnDescriptors, $this->objectStorage, $this->className, $this->tdbmService, $this->magicQuery);
96
+			} else {
97
+				$this->innerResultIterator = new InnerResultArray($this->magicSql, $this->parameters, $this->limit, $this->offset, $this->columnDescriptors, $this->objectStorage, $this->className, $this->tdbmService, $this->magicQuery);
98
+			}
99
+		}
100 100
 
101
-        return $this->innerResultIterator;
102
-    }
101
+		return $this->innerResultIterator;
102
+	}
103 103
 
104
-    /**
105
-     * @return int
106
-     */
107
-    public function getCurrentOffset()
108
-    {
109
-        return $this->offset;
110
-    }
104
+	/**
105
+	 * @return int
106
+	 */
107
+	public function getCurrentOffset()
108
+	{
109
+		return $this->offset;
110
+	}
111 111
 
112
-    /**
113
-     * @return int
114
-     */
115
-    public function getCurrentPage()
116
-    {
117
-        return floor($this->offset / $this->limit) + 1;
118
-    }
112
+	/**
113
+	 * @return int
114
+	 */
115
+	public function getCurrentPage()
116
+	{
117
+		return floor($this->offset / $this->limit) + 1;
118
+	}
119 119
 
120
-    /**
121
-     * @return int
122
-     */
123
-    public function getCurrentLimit()
124
-    {
125
-        return $this->limit;
126
-    }
120
+	/**
121
+	 * @return int
122
+	 */
123
+	public function getCurrentLimit()
124
+	{
125
+		return $this->limit;
126
+	}
127 127
 
128
-    /**
129
-     * Return the number of results on the current page of the {@link Result}.
130
-     *
131
-     * @return int
132
-     */
133
-    public function count()
134
-    {
135
-        return $this->getIterator()->count();
136
-    }
128
+	/**
129
+	 * Return the number of results on the current page of the {@link Result}.
130
+	 *
131
+	 * @return int
132
+	 */
133
+	public function count()
134
+	{
135
+		return $this->getIterator()->count();
136
+	}
137 137
 
138
-    /**
139
-     * Return the number of ALL results in the paginatable of {@link Result}.
140
-     *
141
-     * @return int
142
-     */
143
-    public function totalCount()
144
-    {
145
-        return $this->parentResult->count();
146
-    }
138
+	/**
139
+	 * Return the number of ALL results in the paginatable of {@link Result}.
140
+	 *
141
+	 * @return int
142
+	 */
143
+	public function totalCount()
144
+	{
145
+		return $this->parentResult->count();
146
+	}
147 147
 
148
-    /**
149
-     * Casts the result set to a PHP array.
150
-     *
151
-     * @return array
152
-     */
153
-    public function toArray()
154
-    {
155
-        return iterator_to_array($this->getIterator());
156
-    }
148
+	/**
149
+	 * Casts the result set to a PHP array.
150
+	 *
151
+	 * @return array
152
+	 */
153
+	public function toArray()
154
+	{
155
+		return iterator_to_array($this->getIterator());
156
+	}
157 157
 
158
-    /**
159
-     * Returns a new iterator mapping any call using the $callable function.
160
-     *
161
-     * @param callable $callable
162
-     *
163
-     * @return MapIterator
164
-     */
165
-    public function map(callable $callable)
166
-    {
167
-        return new MapIterator($this->getIterator(), $callable);
168
-    }
158
+	/**
159
+	 * Returns a new iterator mapping any call using the $callable function.
160
+	 *
161
+	 * @param callable $callable
162
+	 *
163
+	 * @return MapIterator
164
+	 */
165
+	public function map(callable $callable)
166
+	{
167
+		return new MapIterator($this->getIterator(), $callable);
168
+	}
169 169
 
170
-    /**
171
-     * Whether a offset exists.
172
-     *
173
-     * @link http://php.net/manual/en/arrayaccess.offsetexists.php
174
-     *
175
-     * @param mixed $offset <p>
176
-     *                      An offset to check for.
177
-     *                      </p>
178
-     *
179
-     * @return bool true on success or false on failure.
180
-     *              </p>
181
-     *              <p>
182
-     *              The return value will be casted to boolean if non-boolean was returned.
183
-     *
184
-     * @since 5.0.0
185
-     */
186
-    public function offsetExists($offset)
187
-    {
188
-        return $this->getIterator()->offsetExists($offset);
189
-    }
170
+	/**
171
+	 * Whether a offset exists.
172
+	 *
173
+	 * @link http://php.net/manual/en/arrayaccess.offsetexists.php
174
+	 *
175
+	 * @param mixed $offset <p>
176
+	 *                      An offset to check for.
177
+	 *                      </p>
178
+	 *
179
+	 * @return bool true on success or false on failure.
180
+	 *              </p>
181
+	 *              <p>
182
+	 *              The return value will be casted to boolean if non-boolean was returned.
183
+	 *
184
+	 * @since 5.0.0
185
+	 */
186
+	public function offsetExists($offset)
187
+	{
188
+		return $this->getIterator()->offsetExists($offset);
189
+	}
190 190
 
191
-    /**
192
-     * Offset to retrieve.
193
-     *
194
-     * @link http://php.net/manual/en/arrayaccess.offsetget.php
195
-     *
196
-     * @param mixed $offset <p>
197
-     *                      The offset to retrieve.
198
-     *                      </p>
199
-     *
200
-     * @return mixed Can return all value types.
201
-     *
202
-     * @since 5.0.0
203
-     */
204
-    public function offsetGet($offset)
205
-    {
206
-        return $this->getIterator()->offsetGet($offset);
207
-    }
191
+	/**
192
+	 * Offset to retrieve.
193
+	 *
194
+	 * @link http://php.net/manual/en/arrayaccess.offsetget.php
195
+	 *
196
+	 * @param mixed $offset <p>
197
+	 *                      The offset to retrieve.
198
+	 *                      </p>
199
+	 *
200
+	 * @return mixed Can return all value types.
201
+	 *
202
+	 * @since 5.0.0
203
+	 */
204
+	public function offsetGet($offset)
205
+	{
206
+		return $this->getIterator()->offsetGet($offset);
207
+	}
208 208
 
209
-    /**
210
-     * Offset to set.
211
-     *
212
-     * @link http://php.net/manual/en/arrayaccess.offsetset.php
213
-     *
214
-     * @param mixed $offset <p>
215
-     *                      The offset to assign the value to.
216
-     *                      </p>
217
-     * @param mixed $value  <p>
218
-     *                      The value to set.
219
-     *                      </p>
220
-     *
221
-     * @since 5.0.0
222
-     */
223
-    public function offsetSet($offset, $value)
224
-    {
225
-        return $this->getIterator()->offsetSet($offset, $value);
226
-    }
209
+	/**
210
+	 * Offset to set.
211
+	 *
212
+	 * @link http://php.net/manual/en/arrayaccess.offsetset.php
213
+	 *
214
+	 * @param mixed $offset <p>
215
+	 *                      The offset to assign the value to.
216
+	 *                      </p>
217
+	 * @param mixed $value  <p>
218
+	 *                      The value to set.
219
+	 *                      </p>
220
+	 *
221
+	 * @since 5.0.0
222
+	 */
223
+	public function offsetSet($offset, $value)
224
+	{
225
+		return $this->getIterator()->offsetSet($offset, $value);
226
+	}
227 227
 
228
-    /**
229
-     * Offset to unset.
230
-     *
231
-     * @link http://php.net/manual/en/arrayaccess.offsetunset.php
232
-     *
233
-     * @param mixed $offset <p>
234
-     *                      The offset to unset.
235
-     *                      </p>
236
-     *
237
-     * @since 5.0.0
238
-     */
239
-    public function offsetUnset($offset)
240
-    {
241
-        return $this->getIterator()->offsetUnset($offset);
242
-    }
228
+	/**
229
+	 * Offset to unset.
230
+	 *
231
+	 * @link http://php.net/manual/en/arrayaccess.offsetunset.php
232
+	 *
233
+	 * @param mixed $offset <p>
234
+	 *                      The offset to unset.
235
+	 *                      </p>
236
+	 *
237
+	 * @since 5.0.0
238
+	 */
239
+	public function offsetUnset($offset)
240
+	{
241
+		return $this->getIterator()->offsetUnset($offset);
242
+	}
243 243
 
244
-    /**
245
-     * Specify data which should be serialized to JSON.
246
-     *
247
-     * @link http://php.net/manual/en/jsonserializable.jsonserialize.php
248
-     *
249
-     * @return mixed data which can be serialized by <b>json_encode</b>,
250
-     *               which is a value of any type other than a resource.
251
-     *
252
-     * @since 5.4.0
253
-     */
254
-    public function jsonSerialize()
255
-    {
256
-        return array_map(function (AbstractTDBMObject $item) {
257
-            return $item->jsonSerialize();
258
-        }, $this->toArray());
259
-    }
244
+	/**
245
+	 * Specify data which should be serialized to JSON.
246
+	 *
247
+	 * @link http://php.net/manual/en/jsonserializable.jsonserialize.php
248
+	 *
249
+	 * @return mixed data which can be serialized by <b>json_encode</b>,
250
+	 *               which is a value of any type other than a resource.
251
+	 *
252
+	 * @since 5.4.0
253
+	 */
254
+	public function jsonSerialize()
255
+	{
256
+		return array_map(function (AbstractTDBMObject $item) {
257
+			return $item->jsonSerialize();
258
+		}, $this->toArray());
259
+	}
260 260
 }
Please login to merge, or discard this patch.
src/views/tdbmGenerate.php 1 patch
Indentation   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -8,7 +8,7 @@
 block discarded – undo
8 8
 <input type="hidden" id="selfedit" name="selfedit" value="<?php echo plainstring_to_htmlprotected($this->selfedit) ?>" />
9 9
 
10 10
 <?php if (!$this->autoloadDetected) {
11
-    ?>
11
+	?>
12 12
 <div class="alert">Warning! TDBM could not detect the autoload section of your composer.json file.
13 13
 Unless you are developing your own autoload system, you should configure <strong>composer.json</strong> to <a href="http://getcomposer.org/doc/01-basic-usage.md#autoloading" target="_blank">define a source directory and a root namespace using PSR-0</a>.</div>
14 14
 <?php 
Please login to merge, or discard this patch.
src/Mouf/Database/TDBM/Controllers/TdbmInstallController.php 2 patches
Doc Comments   +3 added lines patch added patch discarded remove patch
@@ -181,6 +181,9 @@
 block discarded – undo
181 181
 
182 182
     protected $errorMsg;
183 183
 
184
+    /**
185
+     * @param string $msg
186
+     */
184 187
     private function displayErrorMsg($msg)
185 188
     {
186 189
         $this->errorMsg = $msg;
Please login to merge, or discard this patch.
Indentation   +168 added lines, -168 removed lines patch added patch discarded remove patch
@@ -15,172 +15,172 @@
 block discarded – undo
15 15
  */
16 16
 class TdbmInstallController extends Controller
17 17
 {
18
-    /**
19
-     * @var HtmlBlock
20
-     */
21
-    public $content;
22
-
23
-    public $selfedit;
24
-
25
-    /**
26
-     * The active MoufManager to be edited/viewed.
27
-     *
28
-     * @var MoufManager
29
-     */
30
-    public $moufManager;
31
-
32
-    /**
33
-     * The template used by the main page for mouf.
34
-     *
35
-     * @Property
36
-     * @Compulsory
37
-     *
38
-     * @var TemplateInterface
39
-     */
40
-    public $template;
41
-
42
-    /**
43
-     * Displays the first install screen.
44
-     *
45
-     * @Action
46
-     * @Logged
47
-     *
48
-     * @param string $selfedit If true, the name of the component must be a component from the Mouf framework itself (internal use only)
49
-     */
50
-    public function defaultAction($selfedit = 'false')
51
-    {
52
-        $this->selfedit = $selfedit;
53
-
54
-        if ($selfedit == 'true') {
55
-            $this->moufManager = MoufManager::getMoufManager();
56
-        } else {
57
-            $this->moufManager = MoufManager::getMoufManagerHiddenInstance();
58
-        }
59
-
60
-        $this->content->addFile(dirname(__FILE__).'/../../../../views/installStep1.php', $this);
61
-        $this->template->toHtml();
62
-    }
63
-
64
-    /**
65
-     * Skips the install process.
66
-     *
67
-     * @Action
68
-     * @Logged
69
-     *
70
-     * @param string $selfedit If true, the name of the component must be a component from the Mouf framework itself (internal use only)
71
-     */
72
-    public function skip($selfedit = 'false')
73
-    {
74
-        InstallUtils::continueInstall($selfedit == 'true');
75
-    }
76
-
77
-    protected $daoNamespace;
78
-    protected $beanNamespace;
79
-    protected $autoloadDetected;
80
-    protected $storeInUtc;
81
-
82
-    /**
83
-     * Displays the second install screen.
84
-     *
85
-     * @Action
86
-     * @Logged
87
-     *
88
-     * @param string $selfedit If true, the name of the component must be a component from the Mouf framework itself (internal use only)
89
-     */
90
-    public function configure($selfedit = 'false')
91
-    {
92
-        $this->selfedit = $selfedit;
93
-
94
-        if ($selfedit == 'true') {
95
-            $this->moufManager = MoufManager::getMoufManager();
96
-        } else {
97
-            $this->moufManager = MoufManager::getMoufManagerHiddenInstance();
98
-        }
99
-
100
-        // Let's start by performing basic checks about the instances we assume to exist.
101
-        if (!$this->moufManager->instanceExists('dbalConnection')) {
102
-            $this->displayErrorMsg("The TDBM install process assumes your database connection instance is already created, and that the name of this instance is 'dbalConnection'. Could not find the 'dbalConnection' instance.");
103
-
104
-            return;
105
-        }
106
-
107
-        $this->daoNamespace = $this->moufManager->getVariable('tdbmDefaultDaoNamespace_tdbmService');
108
-        $this->beanNamespace = $this->moufManager->getVariable('tdbmDefaultBeanNamespace_tdbmService');
109
-
110
-        if ($this->daoNamespace == null && $this->beanNamespace == null) {
111
-            $classNameMapper = ClassNameMapper::createFromComposerFile(__DIR__.'/../../../../../../../../composer.json');
112
-
113
-            $autoloadNamespaces = $classNameMapper->getManagedNamespaces();
114
-            if ($autoloadNamespaces) {
115
-                $this->autoloadDetected = true;
116
-                $rootNamespace = $autoloadNamespaces[0];
117
-                $this->daoNamespace = $rootNamespace.'Dao';
118
-                $this->beanNamespace = $rootNamespace.'Dao\\Bean';
119
-            } else {
120
-                $this->autoloadDetected = false;
121
-                $this->daoNamespace = 'YourApplication\\Dao';
122
-                $this->beanNamespace = 'YourApplication\\Dao\\Bean';
123
-            }
124
-        } else {
125
-            $this->autoloadDetected = true;
126
-        }
127
-        $this->defaultPath = true;
128
-        $this->storePath = '';
129
-
130
-        $this->castDatesToDateTime = true;
131
-
132
-        $this->content->addFile(dirname(__FILE__).'/../../../../views/installStep2.php', $this);
133
-        $this->template->toHtml();
134
-    }
135
-
136
-    /**
137
-     * This action generates the TDBM instance, then the DAOs and Beans.
138
-     *
139
-     * @Action
140
-     *
141
-     * @param string $daonamespace
142
-     * @param string $beannamespace
143
-     * @param int    $storeInUtc
144
-     * @param string $selfedit
145
-     *
146
-     * @throws \Mouf\MoufException
147
-     */
148
-    public function generate($daonamespace, $beannamespace, $storeInUtc = 0, $selfedit = 'false', $defaultPath = false, $storePath = '')
149
-    {
150
-        $this->selfedit = $selfedit;
151
-
152
-        if ($selfedit == 'true') {
153
-            $this->moufManager = MoufManager::getMoufManager();
154
-        } else {
155
-            $this->moufManager = MoufManager::getMoufManagerHiddenInstance();
156
-        }
157
-
158
-        if (!$this->moufManager->instanceExists('doctrineApcCache')) {
159
-            $doctrineApcCache = $this->moufManager->createInstance('Doctrine\\Common\\Cache\\ApcCache')->setName('doctrineApcCache');
160
-            // TODO: set namespace
161
-        } else {
162
-            $doctrineApcCache = $this->moufManager->getInstanceDescriptor('doctrineApcCache');
163
-        }
164
-
165
-        if (!$this->moufManager->instanceExists('tdbmService')) {
166
-            $tdbmService = $this->moufManager->createInstance('Mouf\\Database\\TDBM\\TDBMService')->setName('tdbmService');
167
-            $tdbmService->getConstructorArgumentProperty('connection')->setValue($this->moufManager->getInstanceDescriptor('dbalConnection'));
168
-            $tdbmService->getConstructorArgumentProperty('cache')->setValue($doctrineApcCache);
169
-        }
170
-
171
-        $this->moufManager->rewriteMouf();
172
-
173
-        TdbmController::generateDaos($this->moufManager, 'tdbmService', $daonamespace, $beannamespace, 'DaoFactory', 'daoFactory', $selfedit, $storeInUtc, $defaultPath, $storePath);
174
-
175
-        InstallUtils::continueInstall($selfedit == 'true');
176
-    }
177
-
178
-    protected $errorMsg;
179
-
180
-    private function displayErrorMsg($msg)
181
-    {
182
-        $this->errorMsg = $msg;
183
-        $this->content->addFile(dirname(__FILE__).'/../../../../views/installError.php', $this);
184
-        $this->template->toHtml();
185
-    }
18
+	/**
19
+	 * @var HtmlBlock
20
+	 */
21
+	public $content;
22
+
23
+	public $selfedit;
24
+
25
+	/**
26
+	 * The active MoufManager to be edited/viewed.
27
+	 *
28
+	 * @var MoufManager
29
+	 */
30
+	public $moufManager;
31
+
32
+	/**
33
+	 * The template used by the main page for mouf.
34
+	 *
35
+	 * @Property
36
+	 * @Compulsory
37
+	 *
38
+	 * @var TemplateInterface
39
+	 */
40
+	public $template;
41
+
42
+	/**
43
+	 * Displays the first install screen.
44
+	 *
45
+	 * @Action
46
+	 * @Logged
47
+	 *
48
+	 * @param string $selfedit If true, the name of the component must be a component from the Mouf framework itself (internal use only)
49
+	 */
50
+	public function defaultAction($selfedit = 'false')
51
+	{
52
+		$this->selfedit = $selfedit;
53
+
54
+		if ($selfedit == 'true') {
55
+			$this->moufManager = MoufManager::getMoufManager();
56
+		} else {
57
+			$this->moufManager = MoufManager::getMoufManagerHiddenInstance();
58
+		}
59
+
60
+		$this->content->addFile(dirname(__FILE__).'/../../../../views/installStep1.php', $this);
61
+		$this->template->toHtml();
62
+	}
63
+
64
+	/**
65
+	 * Skips the install process.
66
+	 *
67
+	 * @Action
68
+	 * @Logged
69
+	 *
70
+	 * @param string $selfedit If true, the name of the component must be a component from the Mouf framework itself (internal use only)
71
+	 */
72
+	public function skip($selfedit = 'false')
73
+	{
74
+		InstallUtils::continueInstall($selfedit == 'true');
75
+	}
76
+
77
+	protected $daoNamespace;
78
+	protected $beanNamespace;
79
+	protected $autoloadDetected;
80
+	protected $storeInUtc;
81
+
82
+	/**
83
+	 * Displays the second install screen.
84
+	 *
85
+	 * @Action
86
+	 * @Logged
87
+	 *
88
+	 * @param string $selfedit If true, the name of the component must be a component from the Mouf framework itself (internal use only)
89
+	 */
90
+	public function configure($selfedit = 'false')
91
+	{
92
+		$this->selfedit = $selfedit;
93
+
94
+		if ($selfedit == 'true') {
95
+			$this->moufManager = MoufManager::getMoufManager();
96
+		} else {
97
+			$this->moufManager = MoufManager::getMoufManagerHiddenInstance();
98
+		}
99
+
100
+		// Let's start by performing basic checks about the instances we assume to exist.
101
+		if (!$this->moufManager->instanceExists('dbalConnection')) {
102
+			$this->displayErrorMsg("The TDBM install process assumes your database connection instance is already created, and that the name of this instance is 'dbalConnection'. Could not find the 'dbalConnection' instance.");
103
+
104
+			return;
105
+		}
106
+
107
+		$this->daoNamespace = $this->moufManager->getVariable('tdbmDefaultDaoNamespace_tdbmService');
108
+		$this->beanNamespace = $this->moufManager->getVariable('tdbmDefaultBeanNamespace_tdbmService');
109
+
110
+		if ($this->daoNamespace == null && $this->beanNamespace == null) {
111
+			$classNameMapper = ClassNameMapper::createFromComposerFile(__DIR__.'/../../../../../../../../composer.json');
112
+
113
+			$autoloadNamespaces = $classNameMapper->getManagedNamespaces();
114
+			if ($autoloadNamespaces) {
115
+				$this->autoloadDetected = true;
116
+				$rootNamespace = $autoloadNamespaces[0];
117
+				$this->daoNamespace = $rootNamespace.'Dao';
118
+				$this->beanNamespace = $rootNamespace.'Dao\\Bean';
119
+			} else {
120
+				$this->autoloadDetected = false;
121
+				$this->daoNamespace = 'YourApplication\\Dao';
122
+				$this->beanNamespace = 'YourApplication\\Dao\\Bean';
123
+			}
124
+		} else {
125
+			$this->autoloadDetected = true;
126
+		}
127
+		$this->defaultPath = true;
128
+		$this->storePath = '';
129
+
130
+		$this->castDatesToDateTime = true;
131
+
132
+		$this->content->addFile(dirname(__FILE__).'/../../../../views/installStep2.php', $this);
133
+		$this->template->toHtml();
134
+	}
135
+
136
+	/**
137
+	 * This action generates the TDBM instance, then the DAOs and Beans.
138
+	 *
139
+	 * @Action
140
+	 *
141
+	 * @param string $daonamespace
142
+	 * @param string $beannamespace
143
+	 * @param int    $storeInUtc
144
+	 * @param string $selfedit
145
+	 *
146
+	 * @throws \Mouf\MoufException
147
+	 */
148
+	public function generate($daonamespace, $beannamespace, $storeInUtc = 0, $selfedit = 'false', $defaultPath = false, $storePath = '')
149
+	{
150
+		$this->selfedit = $selfedit;
151
+
152
+		if ($selfedit == 'true') {
153
+			$this->moufManager = MoufManager::getMoufManager();
154
+		} else {
155
+			$this->moufManager = MoufManager::getMoufManagerHiddenInstance();
156
+		}
157
+
158
+		if (!$this->moufManager->instanceExists('doctrineApcCache')) {
159
+			$doctrineApcCache = $this->moufManager->createInstance('Doctrine\\Common\\Cache\\ApcCache')->setName('doctrineApcCache');
160
+			// TODO: set namespace
161
+		} else {
162
+			$doctrineApcCache = $this->moufManager->getInstanceDescriptor('doctrineApcCache');
163
+		}
164
+
165
+		if (!$this->moufManager->instanceExists('tdbmService')) {
166
+			$tdbmService = $this->moufManager->createInstance('Mouf\\Database\\TDBM\\TDBMService')->setName('tdbmService');
167
+			$tdbmService->getConstructorArgumentProperty('connection')->setValue($this->moufManager->getInstanceDescriptor('dbalConnection'));
168
+			$tdbmService->getConstructorArgumentProperty('cache')->setValue($doctrineApcCache);
169
+		}
170
+
171
+		$this->moufManager->rewriteMouf();
172
+
173
+		TdbmController::generateDaos($this->moufManager, 'tdbmService', $daonamespace, $beannamespace, 'DaoFactory', 'daoFactory', $selfedit, $storeInUtc, $defaultPath, $storePath);
174
+
175
+		InstallUtils::continueInstall($selfedit == 'true');
176
+	}
177
+
178
+	protected $errorMsg;
179
+
180
+	private function displayErrorMsg($msg)
181
+	{
182
+		$this->errorMsg = $msg;
183
+		$this->content->addFile(dirname(__FILE__).'/../../../../views/installError.php', $this);
184
+		$this->template->toHtml();
185
+	}
186 186
 }
Please login to merge, or discard this patch.
src/Mouf/Database/TDBM/InnerResultIterator.php 1 patch
Indentation   +242 added lines, -242 removed lines patch added patch discarded remove patch
@@ -28,246 +28,246 @@
 block discarded – undo
28 28
  */
29 29
 class InnerResultIterator implements \Iterator, \Countable, \ArrayAccess
30 30
 {
31
-    /**
32
-     * @var Statement
33
-     */
34
-    protected $statement;
35
-
36
-    protected $fetchStarted = false;
37
-    private $objectStorage;
38
-    private $className;
39
-
40
-    private $tdbmService;
41
-    private $magicSql;
42
-    private $parameters;
43
-    private $limit;
44
-    private $offset;
45
-    private $columnDescriptors;
46
-    private $magicQuery;
47
-
48
-    /**
49
-     * The key of the current retrieved object.
50
-     *
51
-     * @var int
52
-     */
53
-    protected $key = -1;
54
-
55
-    protected $current = null;
56
-
57
-    private $databasePlatform;
58
-
59
-    public function __construct($magicSql, array $parameters, $limit, $offset, array $columnDescriptors, $objectStorage, $className, TDBMService $tdbmService, MagicQuery $magicQuery)
60
-    {
61
-        $this->magicSql = $magicSql;
62
-        $this->objectStorage = $objectStorage;
63
-        $this->className = $className;
64
-        $this->tdbmService = $tdbmService;
65
-        $this->parameters = $parameters;
66
-        $this->limit = $limit;
67
-        $this->offset = $offset;
68
-        $this->columnDescriptors = $columnDescriptors;
69
-        $this->magicQuery = $magicQuery;
70
-        $this->databasePlatform = $this->tdbmService->getConnection()->getDatabasePlatform();
71
-    }
72
-
73
-    protected function executeQuery()
74
-    {
75
-        $sql = $this->magicQuery->build($this->magicSql, $this->parameters);
76
-        $sql = $this->tdbmService->getConnection()->getDatabasePlatform()->modifyLimitQuery($sql, $this->limit, $this->offset);
77
-
78
-        $this->statement = $this->tdbmService->getConnection()->executeQuery($sql, $this->parameters);
79
-
80
-        $this->fetchStarted = true;
81
-    }
82
-
83
-    /**
84
-     * Counts found records (this is the number of records fetched, taking into account the LIMIT and OFFSET settings).
85
-     *
86
-     * @return int
87
-     */
88
-    public function count()
89
-    {
90
-        if (!$this->fetchStarted) {
91
-            $this->executeQuery();
92
-        }
93
-
94
-        return $this->statement->rowCount();
95
-    }
96
-
97
-    /**
98
-     * Fetches record at current cursor.
99
-     *
100
-     * @return AbstractTDBMObject|null
101
-     */
102
-    public function current()
103
-    {
104
-        return $this->current;
105
-    }
106
-
107
-    /**
108
-     * Returns the current result's key.
109
-     *
110
-     * @return int
111
-     */
112
-    public function key()
113
-    {
114
-        return $this->key;
115
-    }
116
-
117
-    /**
118
-     * Advances the cursor to the next result.
119
-     * Casts the database result into one (or several) beans.
120
-     */
121
-    public function next()
122
-    {
123
-        $row = $this->statement->fetch(\PDO::FETCH_NUM);
124
-        if ($row) {
125
-
126
-            // array<tablegroup, array<table, array<column, value>>>
127
-            $beansData = [];
128
-            foreach ($row as $i => $value) {
129
-                $columnDescriptor = $this->columnDescriptors[$i];
130
-                // Let's cast the value according to its type
131
-                $value = $columnDescriptor['type']->convertToPHPValue($value, $this->databasePlatform);
132
-
133
-                $beansData[$columnDescriptor['tableGroup']][$columnDescriptor['table']][$columnDescriptor['column']] = $value;
134
-            }
135
-
136
-            $reflectionClassCache = [];
137
-            $firstBean = true;
138
-            foreach ($beansData as $beanData) {
139
-
140
-                // Let's find the bean class name associated to the bean.
141
-
142
-                list($actualClassName, $mainBeanTableName) = $this->tdbmService->_getClassNameFromBeanData($beanData);
143
-
144
-                if ($this->className !== null) {
145
-                    $actualClassName = $this->className;
146
-                }
147
-
148
-                // Must we create the bean? Let's see in the cache if we have a mapping DbRow?
149
-                // Let's get the first object mapping a row:
150
-                // We do this loop only for the first table
151
-
152
-                $primaryKeys = $this->tdbmService->_getPrimaryKeysFromObjectData($mainBeanTableName, $beanData[$mainBeanTableName]);
153
-                $hash = $this->tdbmService->getObjectHash($primaryKeys);
154
-
155
-                if ($this->objectStorage->has($mainBeanTableName, $hash)) {
156
-                    $dbRow = $this->objectStorage->get($mainBeanTableName, $hash);
157
-                    $bean = $dbRow->getTDBMObject();
158
-                } else {
159
-                    // Let's construct the bean
160
-                    if (!isset($reflectionClassCache[$actualClassName])) {
161
-                        $reflectionClassCache[$actualClassName] = new \ReflectionClass($actualClassName);
162
-                    }
163
-                    // Let's bypass the constructor when creating the bean!
164
-                    $bean = $reflectionClassCache[$actualClassName]->newInstanceWithoutConstructor();
165
-                    $bean->_constructFromData($beanData, $this->tdbmService);
166
-                }
167
-
168
-                // The first bean is the one containing the main table.
169
-                if ($firstBean) {
170
-                    $firstBean = false;
171
-                    $this->current = $bean;
172
-                }
173
-            }
174
-
175
-            ++$this->key;
176
-        } else {
177
-            $this->current = null;
178
-        }
179
-    }
180
-
181
-    /**
182
-     * Moves the cursor to the beginning of the result set.
183
-     */
184
-    public function rewind()
185
-    {
186
-        $this->executeQuery();
187
-        $this->key = -1;
188
-        $this->next();
189
-    }
190
-    /**
191
-     * Checks if the cursor is reading a valid result.
192
-     *
193
-     * @return bool
194
-     */
195
-    public function valid()
196
-    {
197
-        return $this->current !== null;
198
-    }
199
-
200
-    /**
201
-     * Whether a offset exists.
202
-     *
203
-     * @link http://php.net/manual/en/arrayaccess.offsetexists.php
204
-     *
205
-     * @param mixed $offset <p>
206
-     *                      An offset to check for.
207
-     *                      </p>
208
-     *
209
-     * @return bool true on success or false on failure.
210
-     *              </p>
211
-     *              <p>
212
-     *              The return value will be casted to boolean if non-boolean was returned.
213
-     *
214
-     * @since 5.0.0
215
-     */
216
-    public function offsetExists($offset)
217
-    {
218
-        throw new TDBMInvalidOperationException('You cannot access this result set via index because it was fetched in CURSOR mode. Use ARRAY_MODE instead.');
219
-    }
220
-
221
-    /**
222
-     * Offset to retrieve.
223
-     *
224
-     * @link http://php.net/manual/en/arrayaccess.offsetget.php
225
-     *
226
-     * @param mixed $offset <p>
227
-     *                      The offset to retrieve.
228
-     *                      </p>
229
-     *
230
-     * @return mixed Can return all value types.
231
-     *
232
-     * @since 5.0.0
233
-     */
234
-    public function offsetGet($offset)
235
-    {
236
-        throw new TDBMInvalidOperationException('You cannot access this result set via index because it was fetched in CURSOR mode. Use ARRAY_MODE instead.');
237
-    }
238
-
239
-    /**
240
-     * Offset to set.
241
-     *
242
-     * @link http://php.net/manual/en/arrayaccess.offsetset.php
243
-     *
244
-     * @param mixed $offset <p>
245
-     *                      The offset to assign the value to.
246
-     *                      </p>
247
-     * @param mixed $value  <p>
248
-     *                      The value to set.
249
-     *                      </p>
250
-     *
251
-     * @since 5.0.0
252
-     */
253
-    public function offsetSet($offset, $value)
254
-    {
255
-        throw new TDBMInvalidOperationException('You can set values in a TDBM result set.');
256
-    }
257
-
258
-    /**
259
-     * Offset to unset.
260
-     *
261
-     * @link http://php.net/manual/en/arrayaccess.offsetunset.php
262
-     *
263
-     * @param mixed $offset <p>
264
-     *                      The offset to unset.
265
-     *                      </p>
266
-     *
267
-     * @since 5.0.0
268
-     */
269
-    public function offsetUnset($offset)
270
-    {
271
-        throw new TDBMInvalidOperationException('You can unset values in a TDBM result set.');
272
-    }
31
+	/**
32
+	 * @var Statement
33
+	 */
34
+	protected $statement;
35
+
36
+	protected $fetchStarted = false;
37
+	private $objectStorage;
38
+	private $className;
39
+
40
+	private $tdbmService;
41
+	private $magicSql;
42
+	private $parameters;
43
+	private $limit;
44
+	private $offset;
45
+	private $columnDescriptors;
46
+	private $magicQuery;
47
+
48
+	/**
49
+	 * The key of the current retrieved object.
50
+	 *
51
+	 * @var int
52
+	 */
53
+	protected $key = -1;
54
+
55
+	protected $current = null;
56
+
57
+	private $databasePlatform;
58
+
59
+	public function __construct($magicSql, array $parameters, $limit, $offset, array $columnDescriptors, $objectStorage, $className, TDBMService $tdbmService, MagicQuery $magicQuery)
60
+	{
61
+		$this->magicSql = $magicSql;
62
+		$this->objectStorage = $objectStorage;
63
+		$this->className = $className;
64
+		$this->tdbmService = $tdbmService;
65
+		$this->parameters = $parameters;
66
+		$this->limit = $limit;
67
+		$this->offset = $offset;
68
+		$this->columnDescriptors = $columnDescriptors;
69
+		$this->magicQuery = $magicQuery;
70
+		$this->databasePlatform = $this->tdbmService->getConnection()->getDatabasePlatform();
71
+	}
72
+
73
+	protected function executeQuery()
74
+	{
75
+		$sql = $this->magicQuery->build($this->magicSql, $this->parameters);
76
+		$sql = $this->tdbmService->getConnection()->getDatabasePlatform()->modifyLimitQuery($sql, $this->limit, $this->offset);
77
+
78
+		$this->statement = $this->tdbmService->getConnection()->executeQuery($sql, $this->parameters);
79
+
80
+		$this->fetchStarted = true;
81
+	}
82
+
83
+	/**
84
+	 * Counts found records (this is the number of records fetched, taking into account the LIMIT and OFFSET settings).
85
+	 *
86
+	 * @return int
87
+	 */
88
+	public function count()
89
+	{
90
+		if (!$this->fetchStarted) {
91
+			$this->executeQuery();
92
+		}
93
+
94
+		return $this->statement->rowCount();
95
+	}
96
+
97
+	/**
98
+	 * Fetches record at current cursor.
99
+	 *
100
+	 * @return AbstractTDBMObject|null
101
+	 */
102
+	public function current()
103
+	{
104
+		return $this->current;
105
+	}
106
+
107
+	/**
108
+	 * Returns the current result's key.
109
+	 *
110
+	 * @return int
111
+	 */
112
+	public function key()
113
+	{
114
+		return $this->key;
115
+	}
116
+
117
+	/**
118
+	 * Advances the cursor to the next result.
119
+	 * Casts the database result into one (or several) beans.
120
+	 */
121
+	public function next()
122
+	{
123
+		$row = $this->statement->fetch(\PDO::FETCH_NUM);
124
+		if ($row) {
125
+
126
+			// array<tablegroup, array<table, array<column, value>>>
127
+			$beansData = [];
128
+			foreach ($row as $i => $value) {
129
+				$columnDescriptor = $this->columnDescriptors[$i];
130
+				// Let's cast the value according to its type
131
+				$value = $columnDescriptor['type']->convertToPHPValue($value, $this->databasePlatform);
132
+
133
+				$beansData[$columnDescriptor['tableGroup']][$columnDescriptor['table']][$columnDescriptor['column']] = $value;
134
+			}
135
+
136
+			$reflectionClassCache = [];
137
+			$firstBean = true;
138
+			foreach ($beansData as $beanData) {
139
+
140
+				// Let's find the bean class name associated to the bean.
141
+
142
+				list($actualClassName, $mainBeanTableName) = $this->tdbmService->_getClassNameFromBeanData($beanData);
143
+
144
+				if ($this->className !== null) {
145
+					$actualClassName = $this->className;
146
+				}
147
+
148
+				// Must we create the bean? Let's see in the cache if we have a mapping DbRow?
149
+				// Let's get the first object mapping a row:
150
+				// We do this loop only for the first table
151
+
152
+				$primaryKeys = $this->tdbmService->_getPrimaryKeysFromObjectData($mainBeanTableName, $beanData[$mainBeanTableName]);
153
+				$hash = $this->tdbmService->getObjectHash($primaryKeys);
154
+
155
+				if ($this->objectStorage->has($mainBeanTableName, $hash)) {
156
+					$dbRow = $this->objectStorage->get($mainBeanTableName, $hash);
157
+					$bean = $dbRow->getTDBMObject();
158
+				} else {
159
+					// Let's construct the bean
160
+					if (!isset($reflectionClassCache[$actualClassName])) {
161
+						$reflectionClassCache[$actualClassName] = new \ReflectionClass($actualClassName);
162
+					}
163
+					// Let's bypass the constructor when creating the bean!
164
+					$bean = $reflectionClassCache[$actualClassName]->newInstanceWithoutConstructor();
165
+					$bean->_constructFromData($beanData, $this->tdbmService);
166
+				}
167
+
168
+				// The first bean is the one containing the main table.
169
+				if ($firstBean) {
170
+					$firstBean = false;
171
+					$this->current = $bean;
172
+				}
173
+			}
174
+
175
+			++$this->key;
176
+		} else {
177
+			$this->current = null;
178
+		}
179
+	}
180
+
181
+	/**
182
+	 * Moves the cursor to the beginning of the result set.
183
+	 */
184
+	public function rewind()
185
+	{
186
+		$this->executeQuery();
187
+		$this->key = -1;
188
+		$this->next();
189
+	}
190
+	/**
191
+	 * Checks if the cursor is reading a valid result.
192
+	 *
193
+	 * @return bool
194
+	 */
195
+	public function valid()
196
+	{
197
+		return $this->current !== null;
198
+	}
199
+
200
+	/**
201
+	 * Whether a offset exists.
202
+	 *
203
+	 * @link http://php.net/manual/en/arrayaccess.offsetexists.php
204
+	 *
205
+	 * @param mixed $offset <p>
206
+	 *                      An offset to check for.
207
+	 *                      </p>
208
+	 *
209
+	 * @return bool true on success or false on failure.
210
+	 *              </p>
211
+	 *              <p>
212
+	 *              The return value will be casted to boolean if non-boolean was returned.
213
+	 *
214
+	 * @since 5.0.0
215
+	 */
216
+	public function offsetExists($offset)
217
+	{
218
+		throw new TDBMInvalidOperationException('You cannot access this result set via index because it was fetched in CURSOR mode. Use ARRAY_MODE instead.');
219
+	}
220
+
221
+	/**
222
+	 * Offset to retrieve.
223
+	 *
224
+	 * @link http://php.net/manual/en/arrayaccess.offsetget.php
225
+	 *
226
+	 * @param mixed $offset <p>
227
+	 *                      The offset to retrieve.
228
+	 *                      </p>
229
+	 *
230
+	 * @return mixed Can return all value types.
231
+	 *
232
+	 * @since 5.0.0
233
+	 */
234
+	public function offsetGet($offset)
235
+	{
236
+		throw new TDBMInvalidOperationException('You cannot access this result set via index because it was fetched in CURSOR mode. Use ARRAY_MODE instead.');
237
+	}
238
+
239
+	/**
240
+	 * Offset to set.
241
+	 *
242
+	 * @link http://php.net/manual/en/arrayaccess.offsetset.php
243
+	 *
244
+	 * @param mixed $offset <p>
245
+	 *                      The offset to assign the value to.
246
+	 *                      </p>
247
+	 * @param mixed $value  <p>
248
+	 *                      The value to set.
249
+	 *                      </p>
250
+	 *
251
+	 * @since 5.0.0
252
+	 */
253
+	public function offsetSet($offset, $value)
254
+	{
255
+		throw new TDBMInvalidOperationException('You can set values in a TDBM result set.');
256
+	}
257
+
258
+	/**
259
+	 * Offset to unset.
260
+	 *
261
+	 * @link http://php.net/manual/en/arrayaccess.offsetunset.php
262
+	 *
263
+	 * @param mixed $offset <p>
264
+	 *                      The offset to unset.
265
+	 *                      </p>
266
+	 *
267
+	 * @since 5.0.0
268
+	 */
269
+	public function offsetUnset($offset)
270
+	{
271
+		throw new TDBMInvalidOperationException('You can unset values in a TDBM result set.');
272
+	}
273 273
 }
Please login to merge, or discard this patch.
src/Mouf/Database/TDBM/TDBMObject.php 1 patch
Indentation   +24 added lines, -24 removed lines patch added patch discarded remove patch
@@ -33,28 +33,28 @@
 block discarded – undo
33 33
  */
34 34
 class TDBMObject extends AbstractTDBMObject
35 35
 {
36
-    public function getProperty($var, $tableName = null)
37
-    {
38
-        return $this->get($var, $tableName);
39
-    }
40
-
41
-    public function setProperty($var, $value, $tableName = null)
42
-    {
43
-        $this->set($var, $value, $tableName);
44
-    }
45
-
46
-    /**
47
-     * Specify data which should be serialized to JSON.
48
-     *
49
-     * @link http://php.net/manual/en/jsonserializable.jsonserialize.php
50
-     *
51
-     * @return mixed data which can be serialized by <b>json_encode</b>,
52
-     *               which is a value of any type other than a resource.
53
-     *
54
-     * @since 5.4.0
55
-     */
56
-    public function jsonSerialize()
57
-    {
58
-        throw new TDBMException('Json serialization is only implemented for generated beans.');
59
-    }
36
+	public function getProperty($var, $tableName = null)
37
+	{
38
+		return $this->get($var, $tableName);
39
+	}
40
+
41
+	public function setProperty($var, $value, $tableName = null)
42
+	{
43
+		$this->set($var, $value, $tableName);
44
+	}
45
+
46
+	/**
47
+	 * Specify data which should be serialized to JSON.
48
+	 *
49
+	 * @link http://php.net/manual/en/jsonserializable.jsonserialize.php
50
+	 *
51
+	 * @return mixed data which can be serialized by <b>json_encode</b>,
52
+	 *               which is a value of any type other than a resource.
53
+	 *
54
+	 * @since 5.4.0
55
+	 */
56
+	public function jsonSerialize()
57
+	{
58
+		throw new TDBMException('Json serialization is only implemented for generated beans.');
59
+	}
60 60
 }
Please login to merge, or discard this patch.