Conditions | 3 |
Paths | 9 |
Total Lines | 121 |
Code Lines | 18 |
Lines | 0 |
Ratio | 0 % |
Changes | 0 |
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
1 | <?php |
||
165 | public function searchItems( \Aimeos\MW\Criteria\Iface $search, array $ref = [], &$total = null ) |
||
166 | { |
||
167 | $map = []; |
||
168 | $context = $this->getContext(); |
||
169 | |||
170 | $dbm = $context->getDatabaseManager(); |
||
171 | $dbname = $this->getResourceName(); |
||
172 | $conn = $dbm->acquire( $dbname ); |
||
173 | |||
174 | try |
||
175 | { |
||
176 | $required = array( 'customer.group' ); |
||
177 | $level = \Aimeos\MShop\Locale\Manager\Base::SITE_ALL; |
||
178 | |||
179 | /** mshop/customer/manager/group/typo3/search |
||
180 | * Retrieves the records matched by the given criteria in the database |
||
181 | * |
||
182 | * Fetches the records matched by the given criteria from the customer |
||
183 | * database. The records must be from one of the sites that are |
||
184 | * configured via the context item. If the current site is part of |
||
185 | * a tree of sites, the SELECT statement can retrieve all records |
||
186 | * from the current site and the complete sub-tree of sites. |
||
187 | * |
||
188 | * As the records can normally be limited by criteria from sub-managers, |
||
189 | * their tables must be joined in the SQL context. This is done by |
||
190 | * using the "internaldeps" property from the definition of the ID |
||
191 | * column of the sub-managers. These internal dependencies specify |
||
192 | * the JOIN between the tables and the used columns for joining. The |
||
193 | * ":joins" placeholder is then replaced by the JOIN strings from |
||
194 | * the sub-managers. |
||
195 | * |
||
196 | * To limit the records matched, conditions can be added to the given |
||
197 | * criteria object. It can contain comparisons like column names that |
||
198 | * must match specific values which can be combined by AND, OR or NOT |
||
199 | * operators. The resulting string of SQL conditions replaces the |
||
200 | * ":cond" placeholder before the statement is sent to the database |
||
201 | * server. |
||
202 | * |
||
203 | * If the records that are retrieved should be ordered by one or more |
||
204 | * columns, the generated string of column / sort direction pairs |
||
205 | * replaces the ":order" placeholder. In case no ordering is required, |
||
206 | * the complete ORDER BY part including the "\/*-orderby*\/...\/*orderby-*\/" |
||
207 | * markers is removed to speed up retrieving the records. Columns of |
||
208 | * sub-managers can also be used for ordering the result set but then |
||
209 | * no index can be used. |
||
210 | * |
||
211 | * The number of returned records can be limited and can start at any |
||
212 | * number between the begining and the end of the result set. For that |
||
213 | * the ":size" and ":start" placeholders are replaced by the |
||
214 | * corresponding values from the criteria object. The default values |
||
215 | * are 0 for the start and 100 for the size value. |
||
216 | * |
||
217 | * The SQL statement should conform to the ANSI standard to be |
||
218 | * compatible with most relational database systems. This also |
||
219 | * includes using double quotes for table and column names. |
||
220 | * |
||
221 | * @param string SQL statement for searching items |
||
222 | * @since 2015.08 |
||
223 | * @category Developer |
||
224 | * @see mshop/customer/manager/group/typo3/count |
||
225 | */ |
||
226 | $cfgPathSearch = 'mshop/customer/manager/group/typo3/search'; |
||
227 | |||
228 | /** mshop/customer/manager/group/typo3/count |
||
229 | * Counts the number of records matched by the given criteria in the database |
||
230 | * |
||
231 | * Counts all records matched by the given criteria from the customer |
||
232 | * database. The records must be from one of the sites that are |
||
233 | * configured via the context item. If the current site is part of |
||
234 | * a tree of sites, the statement can count all records from the |
||
235 | * current site and the complete sub-tree of sites. |
||
236 | * |
||
237 | * As the records can normally be limited by criteria from sub-managers, |
||
238 | * their tables must be joined in the SQL context. This is done by |
||
239 | * using the "internaldeps" property from the definition of the ID |
||
240 | * column of the sub-managers. These internal dependencies specify |
||
241 | * the JOIN between the tables and the used columns for joining. The |
||
242 | * ":joins" placeholder is then replaced by the JOIN strings from |
||
243 | * the sub-managers. |
||
244 | * |
||
245 | * To limit the records matched, conditions can be added to the given |
||
246 | * criteria object. It can contain comparisons like column names that |
||
247 | * must match specific values which can be combined by AND, OR or NOT |
||
248 | * operators. The resulting string of SQL conditions replaces the |
||
249 | * ":cond" placeholder before the statement is sent to the database |
||
250 | * server. |
||
251 | * |
||
252 | * Both, the strings for ":joins" and for ":cond" are the same as for |
||
253 | * the "search" SQL statement. |
||
254 | * |
||
255 | * Contrary to the "search" statement, it doesn't return any records |
||
256 | * but instead the number of records that have been found. As counting |
||
257 | * thousands of records can be a long running task, the maximum number |
||
258 | * of counted records is limited for performance reasons. |
||
259 | * |
||
260 | * The SQL statement should conform to the ANSI standard to be |
||
261 | * compatible with most relational database systems. This also |
||
262 | * includes using double quotes for table and column names. |
||
263 | * |
||
264 | * @param string SQL statement for counting items |
||
265 | * @since 2015.08 |
||
266 | * @category Developer |
||
267 | * @see mshop/customer/manager/group/typo3/search |
||
268 | */ |
||
269 | $cfgPathCount = 'mshop/customer/manager/group/typo3/count'; |
||
270 | |||
271 | $results = $this->searchItemsBase( $conn, $search, $cfgPathSearch, $cfgPathCount, $required, $total, $level ); |
||
272 | |||
273 | while( ( $row = $results->fetch() ) !== false ) { |
||
274 | $map[$row['customer.group.id']] = $this->createItemBase( $row ); |
||
275 | } |
||
276 | |||
277 | $dbm->release( $conn, $dbname ); |
||
278 | } |
||
279 | catch( \Exception $e ) |
||
280 | { |
||
281 | $dbm->release( $conn, $dbname ); |
||
282 | throw $e; |
||
283 | } |
||
284 | |||
285 | return $map; |
||
286 | } |
||
310 |
The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g.
excluded_paths: ["lib/*"]
, you can move it to the dependency path list as follows:For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths