PHPackages                             luinuxscl/prompts - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Templating &amp; Views](/categories/templating)
4. /
5. luinuxscl/prompts

ActiveLibrary[Templating &amp; Views](/categories/templating)

luinuxscl/prompts
=================

Un paquete Laravel minimalista para gestionar y anidar prompts de texto

1.0.0(10mo ago)012MITPHPPHP ^8.2

Since Jul 6Pushed 10mo ago1 watchersCompare

[ Source](https://github.com/luinuxscl/prompts)[ Packagist](https://packagist.org/packages/luinuxscl/prompts)[ RSS](/packages/luinuxscl-prompts/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (1)Versions (3)Used By (0)

Laravel Prompts
===============

[](#laravel-prompts)

Un paquete Laravel minimalista para gestionar y anidar prompts de texto con soporte para variables.

Características
---------------

[](#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
-----------

[](#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
----------

[](#uso-básico)

### Relaciones avanzadas entre prompts (padres e hijos)

[](#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:

[](#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`, `sync` y 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

[](#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

[](#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

[](#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

[](#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

[](#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
--------

[](#licencia)

MIT

###  Health Score

32

—

LowBetter than 71% of packages

Maintenance58

Moderate activity, may be stable

Popularity5

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity49

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

307d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/dad07c7f091cdc3987b308c455f3f247febb7cf9ba7ab671bceaefd2530b825f?d=identicon)[luinuxscl](/maintainers/luinuxscl)

---

Top Contributors

[![luinuxscl](https://avatars.githubusercontent.com/u/134660453?v=4)](https://github.com/luinuxscl "luinuxscl (4 commits)")

---

Tags

laraveltemplatestext-processingprompts

### Embed Badge

![Health badge](/badges/luinuxscl-prompts/health.svg)

```
[![Health](https://phpackages.com/badges/luinuxscl-prompts/health.svg)](https://phpackages.com/packages/luinuxscl-prompts)
```

###  Alternatives

[infyomlabs/adminlte-templates

AdminLTE templates for InfyOm Laravel Generator

2681.6M7](/packages/infyomlabs-adminlte-templates)[chimit/prompt

Manage AI prompts in Blade style.

416.6k](/packages/chimit-prompt)[cornford/bootstrapper

An easy way to intergrate Twitter Bootstrap with Laravel.

252.7k](/packages/cornford-bootstrapper)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
