Робота з вкладеними структурами даних стала простішою завдяки класу 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() у класі Fluent ви можете створювати елегантні системи конфігурації, які залишаються читабельними навіть тоді, коли їхня складність зростає. Цей підхід усуває необхідність у вкладеній ініціалізації масивів і надає чистий інтерфейс для управління пов'язаними даними.
PHP 8.5 обіцяє безліч нових можливостей, таких як оператор Pipe, функції `array_first()` та `array_last()`, а також нове розширення URI. Чи готові ви дізнатися, як ці функції можуть спростити вашу розробку? Читайте далі, щоб дізнатися більше про ці захоплюючі нововведення
Досліджуйте новий пакет Data Model для PHP, який спрощує процес гідратації об'єктів без зайвих складнощів! Дізнайтеся, як впровадження типобезпечних об'єктів може революціонізувати ваш підхід до розробки, читаючи нашу статтю
Зазирніть у світ Laravel, де потужний CLI-фреймворк відкриває нові можливості для розробки командного інтерфейсу. Дізнайтеся, як створити просту утиліту для перевірки акцій, яка працює з Docker, та які переваги це може принести у вашому проєкті!