Further modules included.
[yaffs-website] / web / modules / contrib / drupalmoduleupgrader / src / Plugin / DMU / Converter / HookPermission.php
1 <?php
2
3 namespace Drupal\drupalmoduleupgrader\Plugin\DMU\Converter;
4
5 use Drupal\Component\Render\MarkupInterface;
6 use Drupal\drupalmoduleupgrader\ConverterBase;
7 use Drupal\drupalmoduleupgrader\TargetInterface;
8
9 /**
10  * @Converter(
11  *  id = "hook_permission",
12  *  description = @Translation("Converts static implementations of hook_permission() to YAML."),
13  *  hook = "hook_permission"
14  * )
15  */
16 class HookPermission extends ConverterBase {
17
18   /**
19    * {@inheritdoc}
20    */
21   public function convert(TargetInterface $target) {
22     $permissions = $this->executeHook($target, $this->pluginDefinition['hook']);
23     $this->writeInfo($target, 'permissions', $this->castTranslatables($permissions));
24   }
25
26   /**
27    * Casts translatable string objects in a permissions array to strings.
28    *
29    * @param array $permissions
30    *   An array of permissions, as returned by hook_permission().
31    *
32    * @return array
33    *   The permissions array, with all TranslatableString objects casted to
34    *   strings.
35    */
36   protected function castTranslatables($permissions) {
37     array_walk_recursive($permissions, function (&$value) {
38       if ($value instanceof MarkupInterface) {
39         $value = (string) $value;
40       }
41     });
42
43     return $permissions;
44   }
45
46 }