luinuxscl/prompts
Composer 安装命令:
composer require luinuxscl/prompts
包简介
Un paquete Laravel minimalista para gestionar y anidar prompts de texto
README 文档
README
Un paquete Laravel minimalista para gestionar y anidar prompts de texto con soporte para variables.
Características
- Gestión de prompts: Sistema sencillo para almacenar y recuperar plantillas de texto
- Anidamiento de prompts: Capacidad para incluir prompts dentro de otros prompts
- Variables personalizadas: Soporte para variables en formato
::variable:: - Normalización de nombres: Los nombres de prompts se normalizan automáticamente para evitar duplicados
- Prompts de sistema: Soporte para prompts que no se pueden eliminar accidentalmente
- Relaciones avanzadas entre prompts: Un prompt puede tener múltiples padres y/o hijos, permitiendo estructuras complejas y reutilizables.
- Sin interfaz gráfica: Diseñado para uso programático a través de un API simple
- Ligero y eficiente: Implementación minimalista sin dependencias innecesarias
Instalación
composer require luinuxscl/prompts
Publica las migraciones:
php artisan vendor:publish --provider="Luinuxscl\Prompts\PromptsServiceProvider" --tag="migrations"
Ejecuta las migraciones:
php artisan migrate
Opcionalmente, publica el archivo de configuración:
php artisan vendor:publish --provider="Luinuxscl\Prompts\PromptsServiceProvider" --tag="config"
Uso básico
Relaciones avanzadas entre prompts (padres e hijos)
Puedes asociar cualquier prompt a varios padres y/o hijos para crear estructuras complejas y reutilizables. Esto se logra mediante relaciones muchos-a-muchos autoreferenciales.
Ejemplo básico de asociación:
use Luinuxscl\Prompts\Models\Prompt; // Crear prompts $promptA = Prompt::create(['name' => 'A', 'content' => 'Prompt A']); $promptB = Prompt::create(['name' => 'B', 'content' => 'Prompt B']); $promptC = Prompt::create(['name' => 'C', 'content' => 'Prompt C']); // Asociar B y C como hijos de A $promptA->children()->attach([$promptB->id, $promptC->id]); // Asociar B como hijo de C también (B tiene dos padres: A y C) $promptC->children()->attach($promptB->id); // Consultar padres de B $parentsOfB = $promptB->parents; // Collection de prompts // Consultar hijos de A $childrenOfA = $promptA->children; // Collection de prompts
- Puedes usar
attach,detach,syncy demás métodos estándar de relaciones many-to-many de Eloquent. - Las relaciones se gestionan automáticamente mediante la tabla pivote
prompt_relations. - Puedes anidar y reutilizar prompts en cualquier estructura que requieras.
Crear un prompt
use Luinuxscl\Prompts\Facades\Prompts; // Crear un prompt básico Prompts::create('saludo', 'Hola, bienvenido a nuestra plataforma.'); // Crear un prompt con descripción Prompts::create('despedida', 'Gracias por visitarnos.', 'Mensaje de despedida'); // Crear un prompt de sistema (no se puede eliminar) Prompts::createSystem('terminos_servicio', 'Estos son los términos de servicio...'); // También puedes marcar un prompt como sistema al crearlo Prompts::create('politica_privacidad', 'Nuestra política de privacidad...', null, true);
Anidar prompts
// Crear prompts que se pueden anidar Prompts::create('firma', 'Atentamente, El Equipo'); Prompts::create('email_completo', 'Hola cliente,\n\nGracias por tu mensaje.\n\n{{firma}}'); // Renderizar un prompt con anidamiento $mensaje = Prompts::render('email_completo'); // Resultado: "Hola cliente,\n\nGracias por tu mensaje.\n\nAtentamente, El Equipo"
Uso de variables
// Crear un prompt con variables Prompts::create('saludo_personal', 'Hola, ::nombre::! Bienvenido a ::plataforma::.'); // Renderizar el prompt con variables $mensaje = Prompts::render('saludo_personal', [ 'nombre' => 'Juan', 'plataforma' => 'Mi Aplicación' ]); // Resultado: "Hola, Juan! Bienvenido a Mi Aplicación."
Combinación de variables y anidamiento
// Crear prompts con anidamiento y variables Prompts::create('encabezado', 'AVISO IMPORTANTE DE ::empresa::'); Prompts::create('contenido', '{{encabezado}}\n\nEstimado/a ::cliente::,\n\nLe informamos que su cuenta ha sido activada correctamente.'); // Renderizar combinando ambas funcionalidades $mensaje = Prompts::render('contenido', [ 'empresa' => 'MiEmpresa S.A.', 'cliente' => 'Sr. Pérez' ]); /* Resultado: "AVISO IMPORTANTE DE MiEmpresa S.A. Estimado/a Sr. Pérez, Le informamos que su cuenta ha sido activada correctamente." */
Normalización de nombres
Los nombres de prompts se normalizan automáticamente: se convierten a minúsculas, se reemplazan espacios por guiones bajos y se recortan espacios al inicio y final. Esto hace que las siguientes llamadas sean equivalentes:
Prompts::render('Mi Prompt'); // Se busca como "mi_prompt" Prompts::render('mi_prompt'); // Coincide exactamente Prompts::render(' MI PROMPT '); // También se normaliza a "mi_prompt"
Licencia
MIT
luinuxscl/prompts 适用场景与选型建议
luinuxscl/prompts 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 12 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 04 月 19 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「templates」 「laravel」 「text-processing」 「prompts」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 luinuxscl/prompts 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 luinuxscl/prompts 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 luinuxscl/prompts 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Shoot aims to make providing data to your templates more manageable
CakePHP 4.x AdminLTE Theme.
Bookdown.io With Bootswatch Styles And Prism Syntax Highlighting
CakePHP 3.x Gentelella Theme.
Bundle to Mass-Modify Twig Templates
Alfabank REST API integration
统计信息
- 总下载量: 12
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 18
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-04-19