# PHP enums un gran aliado.

## Ejemplo con fechas

Una enumeracion PHP con el método `->dates()`

```php
enum Range: string
{
  case Year = 'year';
  case Last_30 = 'last30';
  case Last_7 = 'last7';
  case Today = 'today';
  
  
  // esto hace super sencillo al como esto:
  // $query->whereBetween(Range::Last_30->date())
  
  return match ($this) {
  	static::Year => [Carbon::now()->startOfYear(), now()],
    static::Last_30 => [Carbon::today()->subDays(29), now()],
    static::Last_7 => [Carbon::today()->subDays(6), now()],
    static::Today => [Carbon::today(), now()],
  };
}
```

![Enum Tip](https://multimedia.castris.com/imagenes/wiki/laravel/enum_tip_20231218.png)

```bash
> App\Enums\RangeDates::Last_30->dates()
= [
    Illuminate\Support\Carbon @1700352000 {#9470
      date: 2023-11-19 00:00:00.0 UTC (+00:00),
    },
    Illuminate\Support\Carbon @1702920948 {#9471
      date: 2023-12-18 17:35:48.748993 UTC (+00:00),
    },
  ]
```


##### Aviso
Esta documentación y su contenido, no implica que funcione en tu caso o determinados casos. 
También implica que tienes conocimientos sobre lo que trata, y que en cualquier caso tienes copias de seguridad.
El contenido el contenido se entrega, tal y como está, sin que ello implique ningún obligación ni responsabilidad por parte de [Castris](https://castris.com)

Si necesitas soporte profesional puedes contratar con Castris [soporte profesional](https://intranet.castris.com/cart.php?gid=18).