for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Laganica\Di\Resolver;
use InvalidArgumentException;
use Laganica\Di\Definition\ClassDefinition;
use Laganica\Di\Definition\DefinitionInterface;
use Laganica\Di\Exception\NotFoundException;
/**
* Class AutowireResolver
*
* @package Laganica\Di\Resolver
*/
class ClassResolver extends ReflectionResolver
{
* @inheritDoc
public function resolve(DefinitionInterface $definition)
if (!$definition instanceof ClassDefinition) {
$actualType = gettype($definition);
$expectedType = ClassDefinition::class;
throw new InvalidArgumentException("Argument \$definition must be $expectedType, $actualType given");
}
$class = $definition->getClass();
if (!class_exists($class)) {
NotFoundException::create($class);
$params = $this->getConstructorParams($class);
return new $class(...$params);