<?php
namespace iThemesSecurity\Modules\Firewall;
use iThemesSecurity\Modules\Firewall\REST;
use iThemesSecurity\Site_Scanner\Repository\Vulnerabilities_Repository;
use iThemesSecurity\Strauss\Patchstack\Extensions\ExtensionInterface;
use iThemesSecurity\Strauss\Pimple\Container;
return static function ( Container $c ) {
$c['module.firewall.files'] = [
'active.php' => Firewall::class,
'logs.php' => Logs::class,
'rest.php' => REST\REST::class,
];
$c[ Firewall::class ] = static function ( Container $c ) {
return new Firewall(
$c[ Rules\Repository::class ],
$c[ Processor_Factory::class ],
$c[ Ingestor::class ]
);
};
$c[ Logs::class ] = static function ( Container $c ) {
return new Logs(
$c[ Vulnerabilities_Repository::class ]
);
};
$c[ Ingestor::class ] = static function ( Container $c ) {
return new Ingestor(
$c[ Rules\Repository::class ]
);
};
$c[ Rules\Repository::class ] = static function () {
return new Rules\Repository( $GLOBALS['wpdb'] );
};
$c[ Rules\Loader::class ] = static function ( Container $c ) {
return $c[ Rules\Repository::class ];
};
$c[ Processor_Factory::class ] = static function ( Container $c ) {
return new Processor_Factory(
$c[ ExtensionInterface::class ],
$c[ Rules\Loader::class ]
);
};
$c[ ExtensionInterface::class ] = static function ( Container $c ) {
return new Extension( $c[ \ITSEC_Lockout::class ] );
};
$c[ REST\REST::class ] = static function ( Container $c ) {
return new REST\REST(
$c[ REST\Rules::class ]
);
};
$c[ REST\Rules::class ] = static function ( Container $c ) {
return new REST\Rules(
$c[ Rules\Repository::class ]
);
};
};