| Conditions | 3 |
| Paths | 2 |
| Total Lines | 78 |
| 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 |
||
| 183 | public function performRealurlAliasMigration(): bool |
||
| 184 | { |
||
| 185 | $result = true; |
||
| 186 | // Check if table 'tx_realurl_uniqalias' exists |
||
| 187 | $queryBuilderForRealurl = GeneralUtility::makeInstance(ConnectionPool::class) |
||
| 188 | ->getQueryBuilderForTable('tx_realurl_uniqalias'); |
||
| 189 | $schemaManager = $queryBuilderForRealurl->getConnection()->getSchemaManager(); |
||
| 190 | if ($schemaManager->tablesExist(['tx_realurl_uniqalias']) === true) { |
||
| 191 | $connection = GeneralUtility::makeInstance(ConnectionPool::class) |
||
| 192 | ->getConnectionForTable('tx_sfeventmgt_domain_model_event'); |
||
| 193 | $queryBuilder = $connection->createQueryBuilder(); |
||
| 194 | $queryBuilder->getRestrictions()->removeAll(); |
||
| 195 | |||
| 196 | // Get entries to update |
||
| 197 | $statement = $queryBuilder |
||
| 198 | ->selectLiteral( |
||
| 199 | 'DISTINCT tx_sfeventmgt_domain_model_event.uid, tx_realurl_uniqalias.value_alias, tx_sfeventmgt_domain_model_event.uid' |
||
| 200 | ) |
||
| 201 | ->from('tx_sfeventmgt_domain_model_event') |
||
| 202 | ->join( |
||
| 203 | 'tx_sfeventmgt_domain_model_event', |
||
| 204 | 'tx_realurl_uniqalias', |
||
| 205 | 'tx_realurl_uniqalias', |
||
| 206 | $queryBuilder->expr()->eq( |
||
| 207 | 'tx_sfeventmgt_domain_model_event.uid', |
||
| 208 | $queryBuilder->quoteIdentifier('tx_realurl_uniqalias.value_id') |
||
| 209 | ) |
||
| 210 | ) |
||
| 211 | ->where( |
||
| 212 | $queryBuilder->expr()->andX( |
||
| 213 | $queryBuilder->expr()->orX( |
||
| 214 | $queryBuilder->expr()->eq( |
||
| 215 | 'tx_sfeventmgt_domain_model_event.slug', |
||
| 216 | $queryBuilder->createNamedParameter('', \PDO::PARAM_STR) |
||
| 217 | ), |
||
| 218 | $queryBuilder->expr()->isNull('tx_sfeventmgt_domain_model_event.slug') |
||
| 219 | ), |
||
| 220 | $queryBuilder->expr()->eq( |
||
| 221 | 'tx_sfeventmgt_domain_model_event.sys_language_uid', |
||
| 222 | 'tx_realurl_uniqalias.lang' |
||
| 223 | ), |
||
| 224 | $queryBuilder->expr()->eq( |
||
| 225 | 'tx_realurl_uniqalias.tablename', |
||
| 226 | $queryBuilder->createNamedParameter('tx_sfeventmgt_domain_model_event', \PDO::PARAM_STR) |
||
| 227 | ), |
||
| 228 | $queryBuilder->expr()->orX( |
||
| 229 | $queryBuilder->expr()->eq( |
||
| 230 | 'tx_realurl_uniqalias.expire', |
||
| 231 | $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT) |
||
| 232 | ), |
||
| 233 | $queryBuilder->expr()->gte( |
||
| 234 | 'tx_realurl_uniqalias.expire', |
||
| 235 | $queryBuilder->createNamedParameter($GLOBALS['ACCESS_TIME'], \PDO::PARAM_INT) |
||
| 236 | ) |
||
| 237 | ) |
||
| 238 | ) |
||
| 239 | ) |
||
| 240 | ->execute(); |
||
| 241 | |||
| 242 | // Update entries |
||
| 243 | while ($record = $statement->fetch()) { |
||
| 244 | $queryBuilder = $connection->createQueryBuilder(); |
||
| 245 | $queryBuilder->update('tx_sfeventmgt_domain_model_event') |
||
| 246 | ->where( |
||
| 247 | $queryBuilder->expr()->eq( |
||
| 248 | 'uid', |
||
| 249 | $queryBuilder->createNamedParameter($record['uid'], \PDO::PARAM_INT) |
||
| 250 | ) |
||
| 251 | ) |
||
| 252 | ->set('slug', (string)$record['value_alias']); |
||
| 253 | $queryBuilder->execute(); |
||
| 254 | } |
||
| 255 | } else { |
||
| 256 | $result = false; |
||
| 257 | } |
||
| 258 | |||
| 259 | return $result; |
||
| 260 | } |
||
| 261 | } |
||
| 262 |