Skip to content

Commit

Permalink
refactor!: Rid of \Illuminate\Contracts\Container\Container injecti…
Browse files Browse the repository at this point in the history
…on (related to #38).
  • Loading branch information
LastDragon-ru committed Dec 18, 2022
1 parent 7380fc1 commit dd49fe7
Show file tree
Hide file tree
Showing 24 changed files with 73 additions and 161 deletions.
3 changes: 2 additions & 1 deletion packages/formatter/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,10 @@ composer require lastdragon-ru/lara-asp-formatter
Formatter is very simple to use:

```php
use Illuminate\Container\Container;
use LastDragon_ru\LaraASP\Formatter\Formatter;

$formatter = app()->make(Formatter::class); // For default app locale
$formatter = Container::getInstance()->make(Formatter::class); // For default app locale
$formatter = $formatter->forLocale('ru_RU'); // For ru_RU locale

$formatter->string(123); // '123'
Expand Down
3 changes: 2 additions & 1 deletion packages/formatter/src/Formatter.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
use Closure;
use DateTimeInterface;
use DateTimeZone;
use Illuminate\Container\Container;
use Illuminate\Contracts\Config\Repository;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Support\Traits\Macroable;
Expand Down Expand Up @@ -220,7 +221,7 @@ public function forTimezone(IntlTimeZone|DateTimeZone|string|null $timezone): st
}

protected function create(): static {
$formatter = $this->getApplication()->make(static::class);
$formatter = Container::getInstance()->make(static::class);
$formatter->locale = $this->locale;
$formatter->timezone = $this->timezone;

Expand Down
9 changes: 2 additions & 7 deletions packages/graphql/src/Builder/Directives/HandlerDirective.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
use GraphQL\Type\Definition\FieldArgument;
use GraphQL\Type\Definition\InputObjectType;
use GraphQL\Type\Definition\ObjectType;
use Illuminate\Contracts\Container\Container;
use Illuminate\Container\Container;
use Illuminate\Database\Eloquent\Builder as EloquentBuilder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Query\Builder as QueryBuilder;
Expand Down Expand Up @@ -51,7 +51,6 @@

abstract class HandlerDirective extends BaseDirective implements Handler {
public function __construct(
private Container $container,
private ArgumentFactory $factory,
private DirectiveLocator $directives,
) {
Expand All @@ -64,10 +63,6 @@ public static function getScope(): string {
return static::class;
}

protected function getContainer(): Container {
return $this->container;
}

protected function getFactory(): ArgumentFactory {
return $this->factory;
}
Expand Down Expand Up @@ -207,7 +202,7 @@ public function manipulateArgDefinition(
): void {
// Converted?
/** @var Manipulator $manipulator */
$manipulator = $this->getContainer()->make(Manipulator::class, [
$manipulator = Container::getInstance()->make(Manipulator::class, [
'document' => $documentAST,
'builderInfo' => $this->getBuilderInfo($parentField),
]);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
use GraphQL\Language\AST\NamedTypeNode;
use GraphQL\Language\AST\NonNullTypeNode;
use GraphQL\Language\Parser;
use Illuminate\Contracts\Container\Container;
use Illuminate\Database\Eloquent\Builder as EloquentBuilder;
use Illuminate\Database\Query\Builder as QueryBuilder;
use Laravel\Scout\Builder as ScoutBuilder;
Expand Down Expand Up @@ -47,9 +46,8 @@ class HandlerDirectiveTest extends TestCase {
public function testGetBuilderInfo(array $expected, Closure $fieldFactory): void {
$directives = $this->app->make(DirectiveLocator::class);
$argFactory = Mockery::mock(ArgumentFactory::class);
$container = Mockery::mock(Container::class);
$field = $fieldFactory($directives);
$directive = new class($container, $argFactory, $directives) extends HandlerDirective {
$directive = new class($argFactory, $directives) extends HandlerDirective {
public static function definition(): string {
throw new Exception('should not be called.');
}
Expand Down
11 changes: 3 additions & 8 deletions packages/graphql/src/Builder/Manipulator.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
use GraphQL\Type\Definition\FieldDefinition;
use GraphQL\Type\Definition\InputObjectField;
use GraphQL\Type\Definition\Type;
use Illuminate\Contracts\Container\Container;
use Illuminate\Container\Container;
use LastDragon_ru\LaraASP\GraphQL\Builder\Contracts\Operator;
use LastDragon_ru\LaraASP\GraphQL\Builder\Contracts\TypeProvider;
use LastDragon_ru\LaraASP\GraphQL\Builder\Exceptions\FakeTypeDefinitionIsNotFake;
Expand Down Expand Up @@ -46,18 +46,13 @@ public function __construct(
DirectiveLocator $directives,
DocumentAST $document,
TypeRegistry $types,
private Container $container,
private BuilderInfo $builderInfo,
) {
parent::__construct($directives, $document, $types);
}

// <editor-fold desc="Getters / Setters">
// =========================================================================
protected function getContainer(): Container {
return $this->container;
}

public function getBuilderInfo(): BuilderInfo {
return $this->builderInfo;
}
Expand All @@ -77,7 +72,7 @@ public function getType(string $definition, ?string $type, ?bool $nullable): str
$this->addFakeTypeDefinition($name);

// Create new
$instance = $this->getContainer()->make($definition);
$instance = Container::getInstance()->make($definition);
$node = $instance->getTypeDefinitionNode($this, $name, $type, $nullable);

if (!$node) {
Expand Down Expand Up @@ -113,7 +108,7 @@ public function addOperators(Operators $operators): static {
* @return T
*/
public function getOperator(string $scope, string $operator): Operator {
return $this->getContainer()->make($operator);
return Container::getInstance()->make($operator);
}

/**
Expand Down
10 changes: 2 additions & 8 deletions packages/graphql/src/Builder/Operators.php
Original file line number Diff line number Diff line change
Expand Up @@ -33,16 +33,10 @@ abstract class Operators {
*/
protected array $operators = [];

public function __construct(
private Container $container,
) {
public function __construct() {
// empty
}

protected function getContainer(): Container {
return $this->container;
}

abstract public function getScope(): string;

/**
Expand All @@ -53,7 +47,7 @@ abstract public function getScope(): string;
* @return T
*/
public function getOperator(string $operator): Operator {
return $this->container->make($operator);
return Container::getInstance()->make($operator);
}

public function hasOperators(string $type): bool {
Expand Down
8 changes: 4 additions & 4 deletions packages/graphql/src/Builder/OperatorsTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ class OperatorsTest extends TestCase {
* @covers ::hasOperators
*/
public function testHasOperators(): void {
$operators = new class($this->app) extends Operators {
$operators = new class() extends Operators {
/**
* @inheritDoc
*/
Expand Down Expand Up @@ -54,7 +54,7 @@ public function testSetOperators(Exception|bool $expected, string $type, array $
self::expectExceptionObject($expected);
}

$operators = new class($this->app) extends Operators {
$operators = new class() extends Operators {
public function getScope(): string {
return __METHOD__;
}
Expand All @@ -71,7 +71,7 @@ public function getScope(): string {
public function testGetOperators(): void {
$type = __FUNCTION__;
$alias = 'alias';
$operators = new class($this->app) extends Operators {
$operators = new class() extends Operators {
public function getScope(): string {
return __METHOD__;
}
Expand Down Expand Up @@ -113,7 +113,7 @@ public function getScope(): string {
* @covers ::getOperators
*/
public function testGetOperatorsUnknownType(): void {
$operators = new class($this->app) extends Operators {
$operators = new class() extends Operators {
public function getScope(): string {
return __METHOD__;
}
Expand Down
2 changes: 1 addition & 1 deletion packages/graphql/src/Provider.php
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ static function (): string {
}

protected function registerDirectives(): void {
$this->app->singleton(ScoutFieldResolver::class, ScoutDefaultFieldResolver::class);
$this->app->bindIf(ScoutFieldResolver::class, ScoutDefaultFieldResolver::class);
$this->callAfterResolving(
Manipulator::class,
static function (Manipulator $manipulator, Container $container): void {
Expand Down
8 changes: 2 additions & 6 deletions packages/graphql/src/SearchBy/Operators.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

namespace LastDragon_ru\LaraASP\GraphQL\SearchBy;

use Illuminate\Container\Container;
use Illuminate\Contracts\Config\Repository;
use LastDragon_ru\LaraASP\GraphQL\Builder\Contracts\Operator as BuilderOperator;
use LastDragon_ru\LaraASP\GraphQL\Builder\Operators as BuilderOperators;
Expand Down Expand Up @@ -114,11 +113,8 @@ class Operators extends BuilderOperators {
],
];

public function __construct(
Container $container,
Repository $config,
) {
parent::__construct($container);
public function __construct(Repository $config) {
parent::__construct();

/** @var array<string,array<class-string<BuilderOperator>|string>> $operators */
$operators = (array) $config->get(Package::Name.'.search_by.operators');
Expand Down
2 changes: 1 addition & 1 deletion packages/graphql/src/SearchBy/OperatorsTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ public function testConstructor(): void {
],
]);

$operators = new class($this->app, $config) extends Operators {
$operators = new class($config) extends Operators {
// empty
};

Expand Down
8 changes: 2 additions & 6 deletions packages/graphql/src/SortBy/Operators.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

namespace LastDragon_ru\LaraASP\GraphQL\SortBy;

use Illuminate\Container\Container;
use Illuminate\Contracts\Config\Repository;
use LastDragon_ru\LaraASP\GraphQL\Builder\Contracts\Operator as BuilderOperator;
use LastDragon_ru\LaraASP\GraphQL\Builder\Operators as BuilderOperators;
Expand All @@ -19,11 +18,8 @@ class Operators extends BuilderOperators {
// empty
];

public function __construct(
Container $container,
Repository $config,
) {
parent::__construct($container);
public function __construct(Repository $config) {
parent::__construct();

/** @var array<string,array<class-string<BuilderOperator>|string>> $operators */
$operators = (array) $config->get(Package::Name.'.sort_by.operators');
Expand Down
2 changes: 1 addition & 1 deletion packages/graphql/src/SortBy/OperatorsTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ public function testConstructor(): void {
],
]);

$operators = new class($this->app, $config) extends Operators {
$operators = new class($config) extends Operators {
// empty
};

Expand Down
5 changes: 2 additions & 3 deletions packages/graphql/src/Testing/GraphQLAssertions.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

use GraphQL\Type\Definition\Type;
use GraphQL\Type\Schema;
use Illuminate\Contracts\Container\Container;
use LastDragon_ru\LaraASP\GraphQL\SchemaPrinter\Contracts\PrintedSchema;
use LastDragon_ru\LaraASP\GraphQL\SchemaPrinter\Contracts\PrintedType;
use LastDragon_ru\LaraASP\GraphQL\SchemaPrinter\Contracts\SchemaPrinter;
Expand Down Expand Up @@ -287,8 +286,8 @@ protected function getGraphQLSchemaBuilder(): SchemaBuilderWrapper {
if (!($builder instanceof SchemaBuilderWrapper)) {
$this->app->extend(
SchemaBuilder::class,
static function (SchemaBuilder $builder, Container $container): SchemaBuilder {
return new SchemaBuilderWrapper($container, $builder);
static function (SchemaBuilder $builder): SchemaBuilder {
return new SchemaBuilderWrapper($builder);
},
);
}
Expand Down
23 changes: 12 additions & 11 deletions packages/graphql/src/Testing/SchemaBuilderWrapper.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

use GraphQL\Type\Schema;
use Illuminate\Config\Repository;
use Illuminate\Container\Container;
use Illuminate\Contracts\Config\Repository as ConfigContract;
use Illuminate\Contracts\Container\Container;
use Illuminate\Contracts\Events\Dispatcher as EventsDispatcher;
use Illuminate\Support\Arr;
use Nuwave\Lighthouse\Schema\AST\ASTBuilder;
Expand All @@ -30,7 +30,6 @@ class SchemaBuilderWrapper extends SchemaBuilder {
* @phpstan-ignore-next-line no need to call parent `__construct`
*/
public function __construct(
protected Container $container,
protected SchemaBuilder $builder,
) {
// no need to call parent
Expand All @@ -46,35 +45,37 @@ public function schema(): Schema {

public function setSchema(?SchemaSourceProvider $provider): void {
// Origins
$container = Container::getInstance();

if (!$this->singletons) {
$this->singletons = [
ASTCache::class => $this->container->make(ASTCache::class),
ASTBuilder::class => $this->container->make(ASTBuilder::class),
ASTCache::class => $container->make(ASTCache::class),
ASTBuilder::class => $container->make(ASTBuilder::class),
];
}

// Build
$builder = null;

if ($provider) {
$config = $this->container->make(ConfigContract::class)->all();
$config = $container->make(ConfigContract::class)->all();

Arr::set($config, 'lighthouse.cache.key', spl_object_hash($provider));
Arr::set($config, 'lighthouse.cache.enable', true);
Arr::set($config, 'lighthouse.cache.version', 1); // cache

$types = $this->container->make(TypeRegistry::class);
$dispatcher = $this->container->make(EventsDispatcher::class);
$directives = $this->container->make(DirectiveLocator::class);
$types = $container->make(TypeRegistry::class);
$dispatcher = $container->make(EventsDispatcher::class);
$directives = $container->make(DirectiveLocator::class);
$astCache = new ASTCache(new Repository($config));
$astBuilder = new ASTBuilder($directives, $provider, $dispatcher, $astCache);
$builder = new SchemaBuilder($types, $astBuilder);

$this->container->instance(ASTCache::class, $astCache);
$this->container->instance(ASTBuilder::class, $astBuilder);
$container->instance(ASTCache::class, $astCache);
$container->instance(ASTBuilder::class, $astBuilder);
} else {
foreach ($this->singletons as $abstract => $instance) {
$this->container->instance($abstract, $instance);
$container->instance($abstract, $instance);
}
}

Expand Down
13 changes: 5 additions & 8 deletions packages/migrator/src/Concerns/RawSqlHelper.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace LastDragon_ru\LaraASP\Migrator\Concerns;

use Illuminate\Contracts\Container\Container;
use Illuminate\Container\Container;
use Illuminate\Database\Connection;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\SchemaState;
Expand All @@ -18,21 +18,18 @@
* @internal
*/
trait RawSqlHelper {
abstract protected function getContainer(): Container;

abstract protected function getFilesystem(): Filesystem;

protected function runRaw(string $type = null): void {
$connection = $this->getConnectionInstance();
$state = $this->getSchemaState($connection);
$path = $this->getRawPath($type);
$fs = Container::getInstance()->make(Filesystem::class);

if ($this->getFilesystem()->isFile($path)) {
if ($fs->isFile($path)) {
if (!$connection->pretending()) {
$state->load($path);
}

$connection->logQuery($this->getFilesystem()->get($path), [], 0);
$connection->logQuery($fs->get($path), [], 0);
}
}

Expand All @@ -50,7 +47,7 @@ private function getConnectionInstance(): Connection {
$connection = $this instanceof Migration
? $this->getConnection()
: null;
$connection = $this->getContainer()->make('db')->connection($connection);
$connection = Container::getInstance()->make('db')->connection($connection);

return $connection;
}
Expand Down
Loading

0 comments on commit dd49fe7

Please sign in to comment.