X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=web%2Fmodules%2Fcontrib%2Fdrupalmoduleupgrader%2Fsrc%2FPlugin%2FDMU%2FAnalyzer%2FHookFormAlter.php;fp=web%2Fmodules%2Fcontrib%2Fdrupalmoduleupgrader%2Fsrc%2FPlugin%2FDMU%2FAnalyzer%2FHookFormAlter.php;h=bfcea8a9581938345f5a1499e0300b0b4b002e27;hp=0000000000000000000000000000000000000000;hb=8acec36f19c470dfcda1ae2336826a782f41874c;hpb=e0411c4e83ba0d079034db83c3f7f55be24a0e35 diff --git a/web/modules/contrib/drupalmoduleupgrader/src/Plugin/DMU/Analyzer/HookFormAlter.php b/web/modules/contrib/drupalmoduleupgrader/src/Plugin/DMU/Analyzer/HookFormAlter.php new file mode 100644 index 000000000..bfcea8a95 --- /dev/null +++ b/web/modules/contrib/drupalmoduleupgrader/src/Plugin/DMU/Analyzer/HookFormAlter.php @@ -0,0 +1,70 @@ +getIndexer('function'); + if ($indexer->has('hook_form_alter')) { + $violations[] = $indexer->get('hook_form_alter'); + } + + $id = $target->id() . '_form_%_alter'; + // Until kernel tests are run in PHPUnit, we need to check for + // the existence of db_like(). + if (function_exists('db_like')) { + $id = db_like($id); + } + $alter_hooks = $target + ->getIndexer('function') + ->getQuery() + ->condition('id', $id, 'LIKE') + ->execute(); + + foreach ($alter_hooks as $alter_hook) { + $violations[] = $target + ->open($alter_hook->file) + ->find(Filter::isFunction($alter_hook->id)); + } + + $issues = []; + + if ($violations) { + $issue = $this->buildIssue($target); + array_walk($violations, function(FunctionDeclarationNode $function) use ($issue) { + $issue->addViolation($function, $this); + }); + $issues[] = $issue; + } + + return $issues; + } + +}