Skip to content

Commit 73e7807

Browse files
suncat2000suncat2000
suncat2000
authored and
suncat2000
committed
Fix InactiveScopeException in CLI mode
1 parent cab5925 commit 73e7807

File tree

4 files changed

+43
-6
lines changed

4 files changed

+43
-6
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?php
2+
3+
namespace SunCat\MobileDetectBundle\DependencyInjection\Compiler;
4+
5+
use Symfony\Component\DependencyInjection\Reference;
6+
use Symfony\Component\DependencyInjection\ContainerBuilder;
7+
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
8+
9+
/**
10+
* CLI listener
11+
*/
12+
class CLIListenerPass implements CompilerPassInterface
13+
{
14+
/**
15+
* If CLI, when remove setMobileDetector method from definition mobile_detect.twig.extension
16+
* @param ContainerBuilder $container
17+
*/
18+
public function process(ContainerBuilder $container)
19+
{
20+
if (php_sapi_name() == "cli") {
21+
$definition = $container->getDefinition('mobile_detect.twig.extension');
22+
$definition->removeMethodCall('setMobileDetector');
23+
}
24+
}
25+
}

MobileDetectBundle.php

+12
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,22 @@
33
namespace SunCat\MobileDetectBundle;
44

55
use Symfony\Component\HttpKernel\Bundle\Bundle;
6+
use Symfony\Component\DependencyInjection\ContainerBuilder;
7+
use SunCat\MobileDetectBundle\DependencyInjection\Compiler\CLIListenerPass;
68

79
/**
810
* MobileDetectBundle
911
*/
1012
class MobileDetectBundle extends Bundle
1113
{
14+
/**
15+
* Build method
16+
* @param ContainerBuilder $container
17+
*/
18+
public function build(ContainerBuilder $container)
19+
{
20+
parent::build($container);
21+
22+
$container->addCompilerPass(new CLIListenerPass());
23+
}
1224
}

Resources/config/services.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@ services:
1111
arguments: [ '@request=' ]
1212
mobile_detect.request_listener:
1313
class: %mobile_detect.request_listener.class%
14-
arguments: [ '@mobile_detect.mobile_detector', '@request', %mobile_detect.redirect% ]
15-
scope: request
14+
arguments: [ '@mobile_detect.mobile_detector', '@request=', %mobile_detect.redirect% ]
1615
tags:
1716
- { name: kernel.event_listener, event: kernel.request, method: handleRequest }
1817
- { name: kernel.event_listener, event: kernel.response, method: handleResponse }
1918
mobile_detect.twig.extension:
2019
class: %mobile_detect.twig.extension.class%
21-
arguments: [ "@mobile_detect.mobile_detector" ]
20+
calls:
21+
- [ setMobileDetector, [ "@mobile_detect.mobile_detector"] ]
2222
strict: false
2323
tags:
2424
- { name: twig.extension }

Twig/Extension/MobileDetectExtension.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@ class MobileDetectExtension extends Twig_Extension
1515
private $mobileDetector;
1616

1717
/**
18-
* Constructor
19-
* @param \SunCat\MobileDetectBundle\DeviceDetector\MobileDetector $mobileDetector
18+
* Set mobile detector
19+
* @param MobileDetector $mobileDetector
2020
*/
21-
public function __construct(MobileDetector $mobileDetector)
21+
public function setMobileDetector(MobileDetector $mobileDetector)
2222
{
2323
$this->mobileDetector = $mobileDetector;
2424
}

0 commit comments

Comments
 (0)