PHP
Pattern: Adapter
12.07.2021
115

Pattern: Adapter

interface ResponseInterface
{
    public function getData(): array;
}

class Response implements ResponseInterface
{
    private $data;

    public function __construct(array $data = [])
    {
        $this->data = $data;
    }

    public function getData(): array
    {
        return $this->data;
    }
}

class ResponseJsonService
{
    public function getData(): string
    {
        return json_encode(['foo' => 'bar']);
    }
}

class ResponseJsonAdapter implements ResponseInterface
{
    private ResponseJsonService $service;

    public function __construct(ResponseJsonService $service)
    {
        $this->service = $service;
    }

    public function getData(): array
    {
        return json_decode($this->service->getData(), true);
    }
}

$response = new Response(['foo' => 'bar']);
var_dump($response->getData());

$responseAdapter = new ResponseJsonAdapter(new ResponseJsonService);
var_dump($responseAdapter->getData());
Источник: ZetRider
PHP
Pattern: State
16.07.2021
108
Pattern: State

abstract class StateVehicle { protected $vehicle; public function __construct(Vehicle $vehicle) { $this->vehicle = $vehicle;...

Читать →
PHP
Pattern: Singleton/Multiton
12.07.2021
163
Pattern: Singleton/Multiton

class Singleton { private $config = []; private static $instance = null; private function __construct() { $this->config =...

Читать →
PHP
Как вставить Gist через визуальный редактор
25.01.2021
532
Как вставить Gist через визуальный редактор

Большинство визуальных редакторов запрещают вставку тега <script> в целях безопасности.При помощи простого регулярного выражения можно заменить...

Читать →