mirror of
https://github.com/OpenXE-org/OpenXE.git
synced 2024-12-26 22:50:29 +01:00
78 lines
1.9 KiB
PHP
78 lines
1.9 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace Xentral\Widgets\DataTable;
|
||
|
|
||
|
use Xentral\Core\DependencyInjection\ContainerInterface;
|
||
|
use Xentral\Widgets\DataTable\Request\DataTableRequest;
|
||
|
use Xentral\Widgets\DataTable\Service\DataTableBuilder;
|
||
|
use Xentral\Widgets\DataTable\Service\DataTableFetcher;
|
||
|
use Xentral\Widgets\DataTable\Service\DataTableRenderer;
|
||
|
use Xentral\Widgets\DataTable\Service\DataTableRequestHandler;
|
||
|
use Xentral\Widgets\DataTable\Service\DataTableService;
|
||
|
|
||
|
final class DataTableFactory
|
||
|
{
|
||
|
/** @var ContainerInterface */
|
||
|
private $container;
|
||
|
|
||
|
/**
|
||
|
* @param ContainerInterface $container
|
||
|
*/
|
||
|
public function __construct(ContainerInterface $container)
|
||
|
{
|
||
|
$this->container = $container;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @return DataTableRequestHandler
|
||
|
*/
|
||
|
public function createDataTableRequestHandler()
|
||
|
{
|
||
|
return new DataTableRequestHandler($this->createDataTableService(), $this->createDataTableRequest());
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @return DataTableService
|
||
|
*/
|
||
|
public function createDataTableService()
|
||
|
{
|
||
|
return new DataTableService(
|
||
|
$this->createDataTableBuilder(),
|
||
|
$this->createDataTableRenderer(),
|
||
|
$this->createDataTableFetcher()
|
||
|
);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @return DataTableBuilder
|
||
|
*/
|
||
|
private function createDataTableBuilder()
|
||
|
{
|
||
|
return new DataTableBuilder($this->container->get('Database'));
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @return DataTableRenderer
|
||
|
*/
|
||
|
private function createDataTableRenderer()
|
||
|
{
|
||
|
return new DataTableRenderer();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @return DataTableFetcher
|
||
|
*/
|
||
|
private function createDataTableFetcher()
|
||
|
{
|
||
|
return new DataTableFetcher($this->container->get('Database'), $this->createDataTableRequest());
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @return DataTableRequest
|
||
|
*/
|
||
|
private function createDataTableRequest()
|
||
|
{
|
||
|
return DataTableRequest::fromRequest($this->container->get('Request'));
|
||
|
}
|
||
|
}
|