3 namespace Drupal\drupalmoduleupgrader\Plugin\DMU\Converter;
5 use Drupal\Component\Render\MarkupInterface;
6 use Drupal\drupalmoduleupgrader\ConverterBase;
7 use Drupal\drupalmoduleupgrader\TargetInterface;
11 * id = "hook_permission",
12 * description = @Translation("Converts static implementations of hook_permission() to YAML."),
13 * hook = "hook_permission"
16 class HookPermission extends ConverterBase {
21 public function convert(TargetInterface $target) {
22 $permissions = $this->executeHook($target, $this->pluginDefinition['hook']);
23 $this->writeInfo($target, 'permissions', $this->castTranslatables($permissions));
27 * Casts translatable string objects in a permissions array to strings.
29 * @param array $permissions
30 * An array of permissions, as returned by hook_permission().
33 * The permissions array, with all TranslatableString objects casted to
36 protected function castTranslatables($permissions) {
37 array_walk_recursive($permissions, function (&$value) {
38 if ($value instanceof MarkupInterface) {
39 $value = (string) $value;