beat/paquete-opciones-beat

v1.2.3 2024-09-19 10:09 UTC

This package is auto-updated.

Last update: 2024-09-19 08:15:10 UTC


README

本包的目的是让这个包能够非常简单地处理应用程序选项的存储。一个很好的例子是替换.env文件中的常量,比如邮件配置或公司的税务地址,这样就可以使用这个包来提供动态配置,而不必修改这些敏感文件。

如何管理选项?

非常简单,通过服务OpcionesService.php,你可以获取(方法getgetTyped)和修改(方法set)在配置文件beat_opciones.php中定义的选项,在opciones键下。此服务将选项存储在数据库中的opciones表中。

  • :选项的名称。 string
  • :选项的值。 json
  • opcionable_type:相关模型的类,如果有的话。 string|null
  • opcionable_id:相关模型的ID,如果有的话。 int|null

一旦服务创建或修改了选项,它也会保存在缓存中,以避免重复调用数据库。此包提供了五个已定义的路由,可以用来管理选项,而无需向您的项目添加更多代码。

  • GET => /opciones/{clave}:接收"模型_id"和"模型_clase"参数。根据接收到的url中的键返回找到的选项的值。

  • GET => /opciones:接收一个包含要列出的选项键的数组以及"模型_id"和"模型_clase"参数。返回以下结构

    
    

[

[
    clave       => clave1,
    valor       => valor1,
    relacion    => // objeto del modelo relacionado o null
],
[
    clave       => clave2,
    valor       => valor2,
    relacion    => // objeto del modelo relacionado o null
],

]

- `PUT => /opciones`: recibe los siguientes parámetros:

[

"opciones"                  => "required|array",
"opciones.*"                => "required|array",
"opciones.*.clave"          => ["required",'string', Rule::in(array_keys(OpcionesService::OPCIONES()))],
"opciones.*.valor"          => ["required"],
"opciones.*.modelo_clase"   => ["sometimes", 'required_with:modelo_id', 'string'],
"opciones.*.modelo_id"      => ["sometimes", 'required_with:modelo_clase', 'numeric'],

]

Actualiza cada opción recibida y devuelve la misma estructura que el endpoint anterior.
- `PUT => /opciones/{clave}`: modifica el valor de la opción encontrada según la clave recibida en la url. Recibe un parámetro "valor", "modelo_id" y "modelo_clase". Devuelve el valor de la opción actualizada.

- `GET => /opciones/modelos`: devuelve los modelos que pueden relacionarse a cada opción.

**IMPORTANTE**: los parámetros `modelo_clase` y `modelo_id` son opcionales en todos los endpoints.

Ver [guía de configuración](./docs/configuration.md#opciones) para saber cómo añadir opciones.

## Requisitos



- PHP (7.4, 8.0, 8.1 o 8.2)
- Laravel 8.x

## Guía de usuario

- [Instalación](/docs/installation.md)
- [Configuración](/docs/configuration.md)
- [Uso](/docs/uso.md)