2026-07-13 10:54:25 +03:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace YakNet\AccessibilityConsole\Core\Container;
|
|
|
|
|
|
|
|
|
|
use DI\ContainerBuilder;
|
|
|
|
|
use Psr\Container\ContainerInterface;
|
|
|
|
|
use YakNet\AccessibilityConsole\Core\Config;
|
|
|
|
|
use YakNet\AccessibilityConsole\Core\Analyser;
|
|
|
|
|
use YakNet\AccessibilityConsole\Core\Scanner;
|
|
|
|
|
use YakNet\AccessibilityConsole\Console\Command\ScanCommand;
|
|
|
|
|
use YakNet\AccessibilityConsole\Console\Command\FixCommand;
|
|
|
|
|
use YakNet\AccessibilityConsole\Console\Command\InitCommand;
|
|
|
|
|
use YakNet\AccessibilityConsole\Console\Command\RulesCommand;
|
2026-09-12 10:12:05 +03:00
|
|
|
use YakNet\AccessibilityConsole\Console\Command\WatchCommand;
|
2026-07-13 10:54:25 +03:00
|
|
|
|
|
|
|
|
class ContainerFactory
|
|
|
|
|
{
|
|
|
|
|
/**
|
|
|
|
|
* Create and configure the PHP-DI container.
|
|
|
|
|
*
|
|
|
|
|
* @return ContainerInterface
|
|
|
|
|
*/
|
|
|
|
|
public static function create(): ContainerInterface
|
|
|
|
|
{
|
|
|
|
|
$builder = new ContainerBuilder();
|
|
|
|
|
|
|
|
|
|
$builder->addDefinitions([
|
|
|
|
|
Config::class => function () {
|
|
|
|
|
$configPath = getcwd() . '/a11y.yaml';
|
|
|
|
|
return Config::fromYaml($configPath);
|
|
|
|
|
},
|
|
|
|
|
Scanner::class => function () {
|
|
|
|
|
return new Scanner();
|
|
|
|
|
},
|
|
|
|
|
Analyser::class => function (ContainerInterface $c) {
|
|
|
|
|
$config = $c->get(Config::class);
|
|
|
|
|
$scanner = $c->get(Scanner::class);
|
|
|
|
|
return new Analyser(
|
|
|
|
|
$config instanceof Config ? $config : null,
|
|
|
|
|
$scanner instanceof Scanner ? $scanner : null
|
|
|
|
|
);
|
|
|
|
|
},
|
|
|
|
|
ScanCommand::class => function () {
|
|
|
|
|
return new ScanCommand();
|
|
|
|
|
},
|
|
|
|
|
FixCommand::class => function () {
|
|
|
|
|
return new FixCommand();
|
|
|
|
|
},
|
|
|
|
|
InitCommand::class => function () {
|
|
|
|
|
return new InitCommand();
|
|
|
|
|
},
|
|
|
|
|
RulesCommand::class => function () {
|
|
|
|
|
return new RulesCommand();
|
|
|
|
|
},
|
2026-09-12 10:12:05 +03:00
|
|
|
WatchCommand::class => function () {
|
|
|
|
|
return new WatchCommand();
|
|
|
|
|
},
|
2026-07-13 10:54:25 +03:00
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
return $builder->build();
|
|
|
|
|
}
|
|
|
|
|
}
|