
Gestión de atributos anidados con el método set de la clase Fluent de Laravel
- Publicado el 23 enero, 2025
- Palabras: 39
¿Necesita administrar atributos anidados de manera más eficaz? La clase Fluent de Laravel ahora incluye un método set() que hace que el manejo de estructuras de datos complejas sea más intuitivo.

#Uso básico
Establezca atributos utilizando la notación de puntos:
$fluent = new Fluent;
// Basic attributes
$fluent->set('product', 'iPhone')
->set('version', 15);
// Nested attributes
$fluent->set('specs.color', 'Space Black')
->set('specs.price.usd', 1199);
// Access values
echo $fluent->product; // "iPhone"
echo $fluent->get('specs.color'); // "Space Black"
echo $fluent->specs['price']['usd']; // 1199
#Ejemplo práctico
A continuación se explica cómo podría usarlo en un sistema de configuración de productos:
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;
}
}
// Usage
$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();
El método set() facilita la gestión de configuraciones anidadas complejas con una interfaz limpia y fluida.
Fuente: Harris Raftopoulos
Artículos relacionados
Inicia la conversación
Hazte miembro de Antonio Jenaro para comenzar a comentar.
Regístrate ahora¿Ya estás registrado? Inicia sesión