Skip to content

Commit e7a568c

Browse files
authored
Merge pull request #57 from ashuradev/register-app-instance-to-container
Automatically add Slim\App instance to Container
2 parents 3249b0d + 3cb072a commit e7a568c

File tree

2 files changed

+23
-0
lines changed

2 files changed

+23
-0
lines changed

src/Bridge.php

+2
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ public static function create(ContainerInterface $container = null): App
3131
$container->set(CallableResolverInterface::class, new CallableResolver($callableResolver));
3232
$app = AppFactory::createFromContainer($container);
3333

34+
$container->set(App::class, $app);
35+
3436
$controllerInvoker = self::createControllerInvoker($container);
3537
$app->getRouteCollector()->setDefaultInvocationStrategy($controllerInvoker);
3638

tests/ApplicationTest.php

+21
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
use DI\Bridge\Slim\Bridge;
66
use DI\Bridge\Slim\Test\Mock\RequestFactory;
77
use PHPUnit\Framework\TestCase;
8+
use Slim\App;
9+
use Psr\Http\Message\ResponseInterface;
810

911
class ApplicationTest extends TestCase
1012
{
@@ -24,4 +26,23 @@ public function runs()
2426

2527
$this->assertTrue($called);
2628
}
29+
30+
/**
31+
* @test
32+
*/
33+
public function register_app_instance_to_container()
34+
{
35+
$app = Bridge::create();
36+
37+
$instance = null;
38+
39+
$app->get('/', function (App $app, ResponseInterface $response) use (&$instance) {
40+
$instance = $app;
41+
return $response;
42+
});
43+
44+
$app->handle(RequestFactory::create());
45+
46+
$this->assertSame($app, $instance);
47+
}
2748
}

0 commit comments

Comments
 (0)