for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace PhpUnitGen\Container;
use PhpParser\Parser;
use PhpParser\ParserFactory;
use PhpUnitGen\Configuration\ConfigInterface;
use PhpUnitGen\Configuration\ConsoleConfigInterface;
use PhpUnitGen\Parser\DirectoryParser;
use PhpUnitGen\Parser\ParserInterface\DirectoryParserInterface;
use PhpUnitGen\Parser\ParserInterface\PhpFileParserInterface;
use PhpUnitGen\Parser\PhpFileParser;
/**
* Class ContainerFactory.
*
* @author Paul Thébaud <[email protected]>.
* @copyright 2017-2018 Paul Thébaud <[email protected]>.
* @license https://opensource.org/licenses/MIT The MIT license.
* @link https://github.com/paul-thebaud/phpunit-generator
* @since Class available since Release 2.0.0.
*/
class ContainerFactory implements ContainerFactoryInterface
{
* {@inheritdoc}
public function invoke(ConfigInterface $config): ContainerInterface
$container = new Container();
// Instance dependencies
$container->setInstance(ConfigInterface::class, $config);
$container->setInstance(ConsoleConfigInterface::class, $config);
$container->setInstance(Parser::class, (new ParserFactory())->create(ParserFactory::PREFER_PHP7));
// Automatically created dependencies and aliases
$container->set(DirectoryParserInterface::class, DirectoryParser::class);
$container->set(PhpFileParserInterface::class, PhpFileParser::class);
return $container;
}