Nueva clase ToolBox para agrupar log, traductor y varias herramientas más

carlos carlos Noticias Fecha de creación: 22-08-2019 20:06:06 Última actualización: 23-10-2019 Equipo: DEVELOPMENT Contador de visitas: 2678

Al comienzo del desarrollo evaluamos usar un contenedor para almacenar las herramientas más utilizadas, como son el logger y el traductor. Pero esa solución tenía un problema, al hacer $this->get('logger') NetBeans no sabía que eso devuelve un objeto de la clase MiniLog y por tanto no mostraba la lista de métodos disponibles. Por este motivo se descartó.

Esta semana hemos estado modificando el logger y hemos buscado una solución alternativa para agrupar estas herramientas: la clase ToolBox, que tiene un método para cada una de las herramientas más utilizadas. Hemos añadido el método toolBox() a controladores y modelos (a las clases base) para poder acceder más cómodamente. Estos cambios estarán disponibles a partir de FacturaScripts 2018.09.

Obtener el traductor desde un controlador o modelo

$i18n = $this->toolBox()->i18n();

También podemos pasar el código de un idioma como parámetro para obtener un traductor para ese idioma:

$i18n = $this->toolBox()->i18n('en_EN');

Obtener la traducción (al idioma predeterminado) de una cadena, por ejemplo 'no-data':

$translation = $this->toolBox()->i18n()->trans('no-data');

Añadir un mensaje de error al log

$this->toolBox()->log()->error('mi mensaje');

También permite especificar un canal como parámetro:

$this->toolBox()->log('mi-canal')->error('mi mensaje');

Añadir un mensaje de error al log, pero con traducción automática

Sucede que la mayoría de veces que queremos escribir algo en el log, lo queremos traducido. En estos casos debíamos combinar una llamada al log con una al traductor. Para hacernos la vida más fácil hemos creado una clase que traduce automáticamente los mensajes antes de añadirlos al log. Y esta clase se puede llamar directamente desde toolBox():

$this->toolBox()->i18nLog()->error('my-message');

También permite especificar un canal como parámetro:

$this->toolBox()->i18nLog('mi-canal')->error('my-message');

Obtener valores de las preferencias de la aplicación

La divisa predeterminada, la forma de pago, etc... se configuran desde las preferencias de la aplicación en el panel de control. Podemos obtener estos valores con la clase AppSettings, que ahora también es accesible desde toolBox().

Vamos a obtener la divisa predeterminada:

$coddivisa = $this->toolBox()->appSettings()->get('default', 'coddivisa');

Acceso a la caché

Podemos guardar valores en caché:

$this->toolBox()->cache()->set('mi-clave', 1234);

Y por supuesto, también podemos leerlos:

$value = $this->toolBox()->cache()->get('mi-clave');

Operaciones con divisas

Podemos formatear una cantidad en la divisa predeterminada:

$string = $this->toolBox()->coins()->format(1234.56);
/// 1 234,55 €

O convertir una cantidad de euros a USD:

$string = $this->toolBox()->coins()->convert(100, 'EUR', 'USD');

Todos los métodos disponibles en toolBox()

  • appSettings() : acceso a las preferencias de la aplicación.
  • cache() : acceso a la caché.
  • coins() : operaciones con divisas.
  • events() : acceso al gestor de eventos.
  • files() : operaciones con archivos o carpetas.
  • i18n() : traductor.
  • i18nLog() : logger con traducción automática.
  • ipFilter() : operaciones con IP.
  • log() : logger.
  • numbers() : operaciones con números.
  • utils() : conjunto de funciones random.

Índice


Amplía tus conocimientos con los cursos oficiales

Curso de usuario

Con este curso aprenderás a gestionar el día a día de tu negocio con FacturaScripts: hacer facturas, albaranes, pedidos, presupuestos, gestionar clientes, proveedores, tarifas, usuarios, además de usar el informe de impuestos. ¿A quién va dirigido? A cualquier usuario que quiera aprender rápidamente el manejo diario del programa.

401 0,00 €
Curso básico de PHP

¡Aprende a programar en PHP de manera fácil y divertida con nuestro curso básico! En este curso, te enseñaremos los conceptos fundamentales de la programación en PHP, incluyendo la sintaxis básica, el manejo de variables, estructuras de control de flujo y mucho más. Al terminar estarás listo para comenzar con el curso de creación de plugins para FacturaScripts.

63 5,99 €

Patrocinadores

Estas empresas y profesionales apoyan económicamente FacturaScripts y nos ayudan a dedicar más tiempo al desarrollo, las pruebas y la documentación.

ORO
PLATA
BRONCE
PRO
mililitrosdeperfume_lao
mililitrosdeperfume_lao
eduardo_12367
eduardo_12367
miguel.garcia_l25
miguel.garcia_l25
carlos
carlos
daniel89fg
daniel89fg
yopli2000_5
yopli2000_5
adelantia_8n
adelantia_8n
davidpujantelopez_mrf
davidpujantelopez_mrf
luis_12743
luis_12743
info-con_12812
info-con_12812
gestion_kw4
gestion_kw4
juan_pil
juan_pil
mariano_6807
mariano_6807
juancarlos_ptr
juancarlos_ptr
samleevoid_n58
samleevoid_n58
esteban
esteban
galonso_12031
galonso_12031
javietglez86_qoa
javietglez86_qoa
drus_9012
drus_9012
zasahora_qof
zasahora_qof
xecron_2176
xecron_2176
mistbookapp_qoh
mistbookapp_qoh
gaston.pechieu_6301
gaston.pechieu_6301
angelroldancordoba_qoq
angelroldancordoba_qoq
mcreparacionesymantenimientos_qow
mcreparacionesymantenimientos_qow
enya_qoz
enya_qoz
cruzmorenob_qp6
cruzmorenob_qp6
kateto2002_obv
kateto2002_obv
ricard.teba_qpe
ricard.teba_qpe
robertorama.gal_qi2
robertorama.gal_qi2
rubente14_qpa
rubente14_qpa
marcosclapes_qpr
marcosclapes_qpr
monthersan_20181
monthersan_20181
david.luque_pw1
david.luque_pw1
stefan.yoshovski_qpz
stefan.yoshovski_qpz
luis.saport_qpx
luis.saport_qpx
alihopeyourlove_pif
alihopeyourlove_pif
anandalor_qq6
anandalor_qq6
pielnaturacosmetica_mgo
pielnaturacosmetica_mgo
lluis_qiv
lluis_qiv
kevin._alex_ikc
kevin._alex_ikc
ahs.toscali_k1j
ahs.toscali_k1j
andres_k12
andres_k12
eneug2017elpozo_qqd
eneug2017elpozo_qqd
domingofernandez.dff_qqe
domingofernandez.dff_qqe
itacadigital_42c
itacadigital_42c
metalid.official_qeg
metalid.official_qeg
andreupear_qqk
andreupear_qqk
jesusgarcialopez1_qji
jesusgarcialopez1_qji
octaviodelineante_22415
octaviodelineante_22415
nimbi_journal3d_qr7
nimbi_journal3d_qr7
pablosateca_qr9
pablosateca_qr9
miestecodex_lvm
miestecodex_lvm
davids_qri
davids_qri
esvabavet_qrj
esvabavet_qrj
f1caroficina_qrm
f1caroficina_qrm
piensanet_21047
piensanet_21047
agujaycalma_qop
agujaycalma_qop
administracion_13337
administracion_13337
norteseo_ko2
norteseo_ko2
sitges_qmp
sitges_qmp
soporte_qrz
soporte_qrz
administracion_q4m
administracion_q4m
patitaslimpias2025_qs7
patitaslimpias2025_qs7
ancurte_1489
ancurte_1489
makeflow360_qrr
makeflow360_qrr
redsion_qs0
redsion_qs0
javi431_qsh
javi431_qsh
sosaarnaboldijuancarlos_ocx
sosaarnaboldijuancarlos_ocx
info.aeiinstitute_qsl
info.aeiinstitute_qsl
pivicdata_q89
pivicdata_q89
informaticaasgaya_qst
informaticaasgaya_qst
informestecnicosjardin_qtc
informestecnicosjardin_qtc
no-reply_qtd
no-reply_qtd
fastudo_r_qrh
fastudo_r_qrh
pintoleidy246_qts
pintoleidy246_qts
calderonpeedro_qtv
calderonpeedro_qtv
simon.isern_o5h
simon.isern_o5h
carlos_qt8
carlos_qt8
jordi.cabanes.costa_qu2
jordi.cabanes.costa_qu2
sebastiansobral_qu5
sebastiansobral_qu5
pastoracalero.m_qsg
pastoracalero.m_qsg
ramon1969_qu6
ramon1969_qu6
carteleramusicales_qub
carteleramusicales_qub
13gradosvigo_qan
13gradosvigo_qan
carlos.arturo.blandon.jaramillo_qud
carlos.arturo.blandon.jaramillo_qud
gruposatibiza_pse
gruposatibiza_pse
chiptuner_que
chiptuner_que
carlosmorenogil_16533
carlosmorenogil_16533
juan_nyw
juan_nyw
rigosalvadorez_qum
rigosalvadorez_qum
dvdhellin_ncv
dvdhellin_ncv
valdecrc_qtg
valdecrc_qtg
movilquickbenidorm_4112
movilquickbenidorm_4112
00ilauraa_quv
00ilauraa_quv
manitasourense_quy
manitasourense_quy
zaszeszis_qv5
zaszeszis_qv5
josejcarmonasr_qu8
josejcarmonasr_qu8
germandiazgarcia63_qvm
germandiazgarcia63_qvm

Si quieres impulsar nuevas mejoras y ayudar a que el proyecto siga creciendo, conviértete en patrocinador y forma parte de quienes lo hacen posible.

Patrocinar

Cookies
Usamos cookies necesarias para el funcionamiento del sitio y cookies opcionales para recordar tus preferencias y mejorar tu experiencia. Puedes aceptarlas todas, rechazarlas o configurar tus preferencias

Soporte