Skip to content

Commit 0c47f84

Browse files
LOBsTerrjmolivas
authored andcommitted
Use interface instead of classe, if it is possible (#3777)
1 parent 12ef535 commit 0c47f84

2 files changed

Lines changed: 25 additions & 1 deletion

File tree

src/Command/Shared/ServicesTrait.php

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ public function buildServices($services)
5959
if (!empty($services)) {
6060
foreach ($services as $service) {
6161
$class = get_class($this->container->get($service));
62+
$class = $this->getInterface($class);
6263
$shortClass = explode('\\', $class);
6364
$machineName = str_replace('.', '_', $service);
6465
$buildServices[$service] = [
@@ -73,4 +74,27 @@ public function buildServices($services)
7374

7475
return $buildServices;
7576
}
77+
78+
/**
79+
* Gets class interface.
80+
*
81+
* @param string $class
82+
* Class name.
83+
*
84+
* @return string
85+
* Interface
86+
*/
87+
private function getInterface($class) {
88+
$interfaceName = $class;
89+
$interfaces = class_implements($class);
90+
if (!empty($interfaces)) {
91+
if (count($interfaces) == 1) {
92+
$interfaceName = array_shift($interfaces);
93+
} elseif ($key = array_search($class . 'Interface', $interfaces)) {
94+
$interfaceName = $interfaces[$key];
95+
}
96+
}
97+
98+
return $interfaceName;
99+
}
76100
}

templates/module/src/TwigExtension/twig-extension.php.twig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class {{ class }} extends \Twig_Extension {% endblock %}
2424
/**
2525
* {{ service.class }} definition.
2626
*
27-
* @var \{{ service.class }}
27+
* @var {{ service.short }}
2828
*/
2929
protected ${{service.camel_case_name}};
3030
{% endfor %}

0 commit comments

Comments
 (0)