luinuxscl / option-package
Paquete Laravel para gestionar opciones polimórficas asociadas a cualquier modelo.
Requires
- php: >=8.0
- illuminate/database: ^11.0|^12.0
- illuminate/support: ^11.0|^12.0
Requires (Dev)
- orchestra/testbench: ^9.12
README
OptionPackage es un paquete para Laravel que permite gestionar opciones polimórficas asociadas a cualquier modelo. Facilita la asignación, recuperación y eliminación de opciones específicas para distintos modelos en tu aplicación.
Características
- Gestión de Opciones Polimórficas: Asocia opciones a cualquier modelo utilizando relaciones polimórficas.
- Fácil Integración: Incluye un trait que simplifica la implementación en tus modelos.
- Controladores y Rutas Predeterminadas: Proporciona controladores y rutas para gestionar opciones a través de API.
Requisitos
- PHP: >=8.0
- Laravel: >=11.0
Instalación
-
Instalar el paquete vía Composer:
composer require luinuxscl/option-package
-
Publicar y ejecutar las migraciones:
Publica las migraciones del paquete:
php artisan vendor:publish --provider="Luinuxscl\OptionPackage\Providers\OptionServiceProvider" --tag="migrations"
Luego, ejecuta las migraciones:
php artisan migrate
-
Publicar el archivo de configuración (opcional):
Si deseas personalizar la configuración del paquete, puedes publicar el archivo de configuración:
php artisan vendor:publish --provider="Luinuxscl\OptionPackage\Providers\OptionServiceProvider" --tag="config"
Uso
-
Incorporar el trait
HasOptions
en tus modelos:Añade el trait
HasOptions
a cualquier modelo que desees que tenga opciones:use Illuminate\Database\Eloquent\Model; use Luinuxscl\OptionPackage\Traits\HasOptions; class User extends Model { use HasOptions; }
-
Asignar, obtener y eliminar opciones:
-
Asignar una opción:
$user->setOption('theme', 'dark');
-
Obtener una opción:
$theme = $user->getOption('theme', 'light'); // 'light' es el valor por defecto si no se encuentra la opción
-
Eliminar una opción:
$user->removeOption('theme');
-
-
Uso de la Facade
Option
para opciones globales:También puedes utilizar la Facade
Option
para gestionar opciones globales:use Luinuxscl\OptionPackage\Facades\Option; // Asignar una opción global Option::set('site_name', 'Mi Sitio Web'); // Obtener una opción global $siteName = Option::get('site_name'); // Eliminar una opción global Option::remove('site_name');
Configuración
El archivo de configuración option.php
permite definir ajustes personalizados para el paquete. Después de publicarlo, puedes encontrarlo en el directorio config
de tu aplicación. Las opciones disponibles incluyen:
- default_model: Define un modelo por defecto para las opciones globales.
Contribuciones
¡Las contribuciones son bienvenidas! Si deseas mejorar este paquete, por favor, envía un pull request o abre un issue en el repositorio de GitHub.
Licencia
Este paquete está licenciado bajo la licencia MIT. Consulta el archivo LICENSE
para más información.
Autor
- Nombre: Luis Sepúlveda
- GitHub: luinuxscl
- Email: lsepulveda@outlook.com
- Página web: like.cl