Etiquetas para gráficas

Belich incluye una serie de etiquetas predeterminadas y basadas en la localización de Laravel, y que pueden ser traducidas.

Este archivo se encuentra en:

\resources\lang\vendor\belich\en\metrics.php

Y por tanto, si quisieramos crear un archivo en español:

\resources\lang\vendor\belich\es\metrics.php

Belich automáticamente, determinará que archivo de idioma a elegir, en base al idioma en que esté configurado Laravel.

Las etiquetas se utilizaran de la siguiente forma:

use Daguilarm\Belich\Components\Metrics\Labels;

/**
 * Set the displayable labels
 *
 * @return string
 */
public function labels(Request $request) : array
{
    return Labels::daysOfTheWeek();
}

Que devolvería un array con:

Array
(
    [0] => 'monday'
    [1] => 'tuesday'
    [2] => 'wednesday'
    [3] => 'thursday'
    [4] => 'friday'
    [5] => 'saturday'
    [6] => 'sunday'
)

El cual puede ser utilizado directamente por las gráficas. Veamos a continuación la lista de etiquetas predeterminadas por Belich.

 Métodos soportados

  • countriesOfTheWorld(): Devuelve un array con todos los nombres de los países del mundo.
  • daysOfTheWeek(): Devuelve un array con los nombres de los días de la semana.
  • daysOfTheWeekMin(): Devuelve un array con los nombres de días de la semana (usando abreviaciones).
  • daysOfTheMonth(): Devuelve un array con los días del mes: de 1 a (28, 29, 30 o 31).
  • hoursOfTheday(): Devuelve un array con valores de 1 a 24.
  • monthsOfTheYear(): Devuelve un array con los nombres de los meses del año.
  • monthsOfTheYearMin(): Devuelve un array con los nombres de los meses del año (usando abreviaciones).
  • listOfYears(): Devuelve un array con los años en función del año inicial.

Agunos ejemplos:

use Daguilarm\Belich\Components\Metrics\Labels;

/**
 * Get the values from storage
 *
 * @return string
 */
public function labels(Request $request) : array
{
    return Labels::daysOfTheWeek();
}

//Will return
['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday']

Veamos el ejemplo que puede crear más dudas:

use Daguilarm\Belich\Components\Metrics\Labels;

/**
 * Get the values from storage
 *
 * @return string
 */
public function labels(Request $request) : array
{
    return Labels::listOfYears(3);
}

//Will return if today is 2019
[2017, 2018, 2019]

Le hemos indicado que nos devuelva un array con los tres últimos años.

Todos los métodos devuelven arrays, pero aquellos que el array contiene texto (strings) y no números, puede ser formateado. Estos métodos, como por ejemplo: Labels::daysOfTheWeek(), admiten un parámetro adicional:

use Daguilarm\Belich\Components\Metrics\Labels;

/**
 * Get the values from storage
 *
 * @return string
 */
public function labels(Request $request) : array
{
    return Labels::daysOfTheWeek('capitalize');
}

//Will return if today is 2019
['MONDAY', 'TUESDAY', ...]

Es decir, podemos formatear la salida del array. Las opciones soportadas son:

  • capitalize: nos devolverá el texto en mayúsculas.
  • lower: nos devolverá el texto en minúculas.
  • title: nos devolverá el texto con la primera letra capitalizada (ucfirst). Esta es la opción por defecto.

Por supuesto, podemos personalizar el método con nuestros propios arrays, no tenemos por qué utilizar los predeterminados:

use Daguilarm\Belich\Components\Metrics\Labels;

/**
 * Get the values from storage
 *
 * @return string
 */
public function labels(Request $request) : array
{
    // Odd days
    return [1, 3, 5, 7, 9, 11];
}

O incluso:

use Daguilarm\Belich\Components\Metrics\Labels;

/**
 * Get the values from storage
 *
 * @return string
 */
public function labels(Request $request) : array
{
    // Three days a week
    return ['monday', 'wednesday', 'friday'];
}