Laravel
February 14
Управление вложенными атрибутами с помощью метода set класса Fluent в Laravel
Необходимо более эффективно управлять вложенными атрибутами? Класс `Fluent
в Laravel теперь содержит метод set()
, позволяющий сделать работу со сложными структурами данных более интуитивной.
Базовое использование
Устанавливайте атрибуты, используя точечную нотацию:
$fluent = new Fluent; // Базовые атрибуты $fluent->set('product', 'iPhone') ->set('version', 15); // Вложенные атрибуты $fluent->set('specs.color', 'Space Black') ->set('specs.price.usd', 1199); // Доступ к значениям echo $fluent->product; // "iPhone" echo $fluent->get('specs.color'); // "Space Black" echo $fluent->specs['price']['usd']; // 1199
Реальный пример
Рассмотрим, как его можно использовать в системе конфигурирования товаров:
class ProductConfigurator { private $config; public function __construct() { $this->config = new Fluent; } public function setBasicDetails(string $name, string $sku) { $this->config ->set('product.name', $name) ->set('product.sku', $sku) ->set('product.created_at', now()); return $this; } public function setPricing(float $base, array $taxes) { $this->config ->set('pricing.base', $base) ->set('pricing.taxes', $taxes) ->set('pricing.total', $base + array_sum($taxes)); return $this; } public function setShipping(array $dimensions, float $weight) { $this->config ->set('shipping.dimensions', $dimensions) ->set('shipping.weight', $weight) ->set('shipping.requires_special', $weight > 20); return $this; } public function getConfiguration() { return $this->config; } } // Использование $configurator = new ProductConfigurator(); $product = $configurator ->setBasicDetails('Gaming Laptop', 'LAP-2024-001') ->setPricing(999.99, ['vat' => 199.99]) ->setShipping(['length' => 15, 'width' => 10], 2.5) ->getConfiguration();
Метод set()
облегчает управление сложными вложенными конфигурациями с помощью чистого и удобного интерфейса.