Skip to content

Commit 97b6cf1

Browse files
committed
Address container inconsistency across various illuminate/container versions
1 parent ea247d4 commit 97b6cf1

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

src/Misc/LaravelApplicationWrapper.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,8 @@ public function getNamespace()
8888
*/
8989
public function make($abstract, array $parameters = [])
9090
{
91-
return $this->app->make($abstract, $parameters);
91+
return method_exists($app, 'makeWith')
92+
? $app->makeWith($abstract, $parameters)
93+
: $app->make($abstract, $parameters);
9294
}
9395
}

tests/Support/TestApplicationWrapper.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
use Arrilot\Widgets\Contracts\ApplicationWrapperContract;
77
use Arrilot\Widgets\Factories\AsyncWidgetFactory;
88
use Arrilot\Widgets\Factories\WidgetFactory;
9+
use Illuminate\Container\Container;
910
use Closure;
1011
use Doctrine\Instantiator\Exception\InvalidArgumentException;
1112

@@ -99,9 +100,14 @@ public function make($abstract, array $parameters = [])
99100
}
100101

101102
if (is_subclass_of($abstract, AbstractWidget::class)) {
102-
$app = \Illuminate\Container\Container::getInstance();
103+
$app = Container::getInstance();
104+
if (!$app) {
105+
$app = Container::setInstance(new Container());
106+
}
103107

104-
return $app->makeWith($abstract, $parameters);
108+
return method_exists($app, 'makeWith')
109+
? $app->makeWith($abstract, $parameters)
110+
: $app->make($abstract, $parameters);
105111
}
106112

107113
throw new InvalidArgumentException("Binding {$abstract} cannot be resolved while testing");

0 commit comments

Comments
 (0)