Adapter
This commit is contained in:
62
code/adapter.php
Normal file
62
code/adapter.php
Normal file
@@ -0,0 +1,62 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package: patterns
|
||||
* @author: Yevhen Odynets
|
||||
* @date: 2025-07-03
|
||||
* @time: 21:21
|
||||
*/
|
||||
|
||||
declare(strict_types = 1);
|
||||
|
||||
use Pattern\Structural\Adapter\JsonReport;
|
||||
use Pattern\Structural\Adapter\JsonToPHPArrayReportAdapter;
|
||||
use Pattern\Structural\Adapter\PHPArrayReport;
|
||||
use Pattern\Structural\Adapter\PHPArrayReportInterfaceAdapter;
|
||||
use Pattern\Structural\Adapter\SerializedReport;
|
||||
use Pattern\Structural\Adapter\SerializedToPHPArrayReportAdapter;
|
||||
use Pattern\Structural\Adapter\XMLReport;
|
||||
use Pattern\Structural\Adapter\XMLToPHPArrayReportAdapter;
|
||||
use Pattern\Structural\Adapter\YamlReport;
|
||||
use Pattern\Structural\Adapter\YamlToPHPArrayReportAdapter;
|
||||
|
||||
$reports = [
|
||||
// new YamlReport(),
|
||||
new PHPArrayReport(),
|
||||
new XMLReport(),
|
||||
new SerializedReport(),
|
||||
new JsonReport(),
|
||||
];
|
||||
|
||||
function client(array $reports): void
|
||||
{
|
||||
foreach ($reports as $report) {
|
||||
$adapter = null;
|
||||
|
||||
if ($report instanceof PHPArrayReport) {
|
||||
$adapter = $report;
|
||||
} elseif ($report instanceof JsonReport) {
|
||||
$adapter = new JsonToPHPArrayReportAdapter($report);
|
||||
} elseif ($report instanceof SerializedReport) {
|
||||
$adapter = new SerializedToPHPArrayReportAdapter($report);
|
||||
} elseif ($report instanceof XMLReport) {
|
||||
$adapter = new XMLToPHPArrayReportAdapter($report);
|
||||
} elseif ($report instanceof YamlReport) {
|
||||
$adapter = new YamlToPHPArrayReportAdapter($report);
|
||||
}
|
||||
|
||||
if (! is_null($adapter)) {
|
||||
echo $adapter::class;
|
||||
renderView($adapter);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function renderView(PHPArrayReportInterfaceAdapter $adapter): void
|
||||
{
|
||||
/** @noinspection ForgottenDebugOutputInspection */
|
||||
dump($adapter->getData());
|
||||
}
|
||||
|
||||
?><img class="diagram" src="/assets/img/diagrams/adapter.png" alt="Adapter DEsign Pattern Diagram"><?php
|
||||
client($reports);
|
||||
Reference in New Issue
Block a user