class DeliveryManager
{
private $deliveries = [];
public function setDelivery(DeliveryInterface $delivery)
{
$this->deliveries[$delivery->getId()] = $delivery;
}
public function setDeliveryClass(int $id, string $className, array $config = [])
{
$config['id'] = $id;
$delivery = new $className($config);
$this->setDelivery($delivery);
}
public function getDelivery(int $id): DeliveryInterface
{
if (!isset($this->deliveries[$id])) {
throw new InvalidArgumentException("Delivery #$id not found");
}
return $this->deliveries[$id];
}
}
мы к массиву арифметически прибавляем строку(или?)мы складываем 2 массива
Менеджер так понял создает свой конфиг при регистрации СД и передает их к классам доставок? Правильно?это упрощенный пример, в реальном коде используется абстрактная фабрика для создания DeliveryInterface объектов, которая в свою очередь использует DI контейнер.
class Address
{
public function getId(): ?int {}
public function getCountry(): string {}
public function getCountryCode(): int {}
public function getRegion(): string {}
public function getRegionCode(): int {}
public function getSettlement(): string {} // поселение - город, деревня, село
public function getSettlementId(): int {}
public function getStreet(): ?string {} // адрес: улица, дом, квартира/офис
public function getZipCode(): ?string {} // почтовый индекс
public function getCoordinates(): ?array {} // координаты: широта и долгота для отображения на карте
public function __toString(): string {} // строка адреса: страна, регион и т.д.
}
data_json:json содержит json строку как и data_string.data_json используется для хранения исходного варианта и поэтому тип поля text
Потом через div и mod вытаскиваешь нужную составляющую.a как? и почему не 10 х 8 х 15?
{"%s": %d, "%s": %d, "%s": %d}
, data_json:json содержит json строку как и data_string. как итог: никаких изменений