| Conditions | 15 |
| Paths | 145 |
| Total Lines | 96 |
| Code Lines | 59 |
| 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 |
||
| 132 | public function processViewActionParameters($objectType, SortableColumns $sortableColumns, array $templateParameters = []) |
||
| 133 | { |
||
| 134 | $contextArgs = ['controller' => $objectType, 'action' => 'view']; |
||
| 135 | if (!in_array($objectType, $this->getObjectTypes('controllerAction', $contextArgs))) { |
||
| 136 | throw new Exception($this->__('Error! Invalid object type received.')); |
||
| 137 | } |
||
| 138 | |||
| 139 | $request = $this->request; |
||
| 140 | $repository = $this->entityFactory->getRepository($objectType); |
||
| 141 | |||
| 142 | // parameter for used sorting field |
||
| 143 | $sort = $request->query->get('sort', ''); |
||
| 144 | if (empty($sort) || !in_array($sort, $repository->getAllowedSortingFields())) { |
||
| 145 | $sort = $repository->getDefaultSortingField(); |
||
| 146 | $request->query->set('sort', $sort); |
||
| 147 | // set default sorting in route parameters (e.g. for the pager) |
||
| 148 | $routeParams = $request->attributes->get('_route_params'); |
||
| 149 | $routeParams['sort'] = $sort; |
||
| 150 | $request->attributes->set('_route_params', $routeParams); |
||
| 151 | } |
||
| 152 | $sortdir = $request->query->get('sortdir', 'ASC'); |
||
| 153 | $sortableColumns->setOrderBy($sortableColumns->getColumn($sort), strtoupper($sortdir)); |
||
| 154 | |||
| 155 | $templateParameters['all'] = 'csv' == $request->getRequestFormat() ? 1 : $request->query->getInt('all', 0); |
||
| 156 | $templateParameters['own'] = $request->query->getInt('own', $this->variableApi->get('ZikulaRoutesModule', 'showOnlyOwnEntries', 0)); |
||
| 157 | |||
| 158 | $resultsPerPage = 0; |
||
| 159 | if ($templateParameters['all'] != 1) { |
||
| 160 | // the number of items displayed on a page for pagination |
||
| 161 | $resultsPerPage = $request->query->getInt('num', 0); |
||
| 162 | if (in_array($resultsPerPage, [0, 10])) { |
||
| 163 | $resultsPerPage = $this->variableApi->get('ZikulaRoutesModule', $objectType . 'EntriesPerPage', 10); |
||
| 164 | } |
||
| 165 | } |
||
| 166 | $templateParameters['num'] = $resultsPerPage; |
||
| 167 | $templateParameters['tpl'] = $request->query->getAlnum('tpl', ''); |
||
| 168 | |||
| 169 | $templateParameters = $this->addTemplateParameters($objectType, $templateParameters, 'controllerAction', $contextArgs); |
||
| 170 | |||
| 171 | $quickNavForm = $this->formFactory->create('Zikula\RoutesModule\Form\Type\QuickNavigation\\' . ucfirst($objectType) . 'QuickNavType', $templateParameters); |
||
| 172 | if ($quickNavForm->handleRequest($request) && $quickNavForm->isSubmitted()) { |
||
| 173 | $quickNavData = $quickNavForm->getData(); |
||
| 174 | foreach ($quickNavData as $fieldName => $fieldValue) { |
||
| 175 | if ($fieldName == 'routeArea') { |
||
| 176 | continue; |
||
| 177 | } |
||
| 178 | if (in_array($fieldName, ['all', 'own', 'num'])) { |
||
| 179 | $templateParameters[$fieldName] = $fieldValue; |
||
| 180 | } else { |
||
| 181 | // set filter as query argument, fetched inside repository |
||
| 182 | $request->query->set($fieldName, $fieldValue); |
||
| 183 | } |
||
| 184 | } |
||
| 185 | } |
||
| 186 | |||
| 187 | $urlParameters = $templateParameters; |
||
| 188 | foreach ($urlParameters as $parameterName => $parameterValue) { |
||
| 189 | if (false !== stripos($parameterName, 'thumbRuntimeOptions')) { |
||
| 190 | unset($urlParameters[$parameterName]); |
||
| 191 | } |
||
| 192 | } |
||
| 193 | |||
| 194 | $sort = $sortableColumns->getSortColumn()->getName(); |
||
| 195 | $sortdir = $sortableColumns->getSortDirection(); |
||
| 196 | $sortableColumns->setAdditionalUrlParameters($urlParameters); |
||
| 197 | |||
| 198 | $where = ''; |
||
| 199 | if ($templateParameters['all'] == 1) { |
||
| 200 | // retrieve item list without pagination |
||
| 201 | $entities = $repository->selectWhere($where, $sort . ' ' . $sortdir); |
||
| 202 | } else { |
||
| 203 | // the current offset which is used to calculate the pagination |
||
| 204 | $currentPage = $request->query->getInt('pos', 1); |
||
| 205 | |||
| 206 | // retrieve item list with pagination |
||
| 207 | list($entities, $objectCount) = $repository->selectWherePaginated($where, $sort . ' ' . $sortdir, $currentPage, $resultsPerPage); |
||
| 208 | |||
| 209 | $templateParameters['currentPage'] = $currentPage; |
||
| 210 | $templateParameters['pager'] = [ |
||
| 211 | 'amountOfItems' => $objectCount, |
||
| 212 | 'itemsPerPage' => $resultsPerPage |
||
| 213 | ]; |
||
| 214 | } |
||
| 215 | |||
| 216 | $templateParameters['sort'] = $sort; |
||
| 217 | $templateParameters['sortdir'] = $sortdir; |
||
| 218 | $templateParameters['items'] = $entities; |
||
| 219 | |||
| 220 | |||
| 221 | $templateParameters['sort'] = $sortableColumns->generateSortableColumns(); |
||
| 222 | $templateParameters['quickNavForm'] = $quickNavForm->createView(); |
||
| 223 | |||
| 224 | $templateParameters['canBeCreated'] = $this->modelHelper->canBeCreated($objectType); |
||
| 225 | |||
| 226 | return $templateParameters; |
||
| 227 | } |
||
| 228 | |||
| 313 |
This check looks from parameters that have been defined for a function or method, but which are not used in the method body.