|
3 | 3 | namespace SensioLabs\AnsiConverter\Bridge\Twig; |
4 | 4 |
|
5 | 5 | use SensioLabs\AnsiConverter\AnsiToHtmlConverter; |
| 6 | +use Twig\Extension\AbstractExtension; |
| 7 | +use Twig\TwigFilter; |
| 8 | +use Twig\TwigFunction; |
6 | 9 |
|
7 | | -class AnsiExtension extends \Twig_Extension |
| 10 | +class AnsiExtension extends AbstractExtension |
8 | 11 | { |
| 12 | + /** @var AnsiToHtmlConverter */ |
9 | 13 | private $converter; |
10 | 14 |
|
11 | 15 | public function __construct(AnsiToHtmlConverter $converter = null) |
12 | 16 | { |
13 | 17 | $this->converter = $converter ?: new AnsiToHtmlConverter(); |
14 | 18 | } |
15 | 19 |
|
16 | | - public function getFilters() |
| 20 | + public function getFilters(): array |
17 | 21 | { |
18 | | - return array( |
19 | | - new \Twig_SimpleFilter('ansi_to_html', array($this, 'ansiToHtml'), array('is_safe' => array('html'))), |
20 | | - ); |
| 22 | + return [ |
| 23 | + new TwigFilter('ansi_to_html', [$this, 'ansiToHtml'], ['is_safe' => ['html']]), |
| 24 | + ]; |
21 | 25 | } |
22 | 26 |
|
23 | | - public function getFunctions() |
| 27 | + public function getFunctions(): array |
24 | 28 | { |
25 | | - return array( |
26 | | - new \Twig_SimpleFunction('ansi_css', array($this, 'css'), array('is_safe' => array('css'))), |
27 | | - ); |
| 29 | + return [ |
| 30 | + new TwigFunction('ansi_css', [$this, 'css'], ['is_safe' => ['css']]), |
| 31 | + ]; |
28 | 32 | } |
29 | 33 |
|
30 | 34 | public function ansiToHtml($string) |
31 | 35 | { |
32 | 36 | return $this->converter->convert($string); |
33 | 37 | } |
34 | 38 |
|
35 | | - public function css() |
| 39 | + public function css(): string |
36 | 40 | { |
37 | 41 | return $this->converter->getTheme()->asCss(); |
38 | 42 | } |
39 | 43 |
|
40 | | - public function getName() |
| 44 | + public function getName(): string |
41 | 45 | { |
42 | 46 | return 'sensiolabs_ansi'; |
43 | 47 | } |
|
0 commit comments