PHPackages                             dlunire/dlunire - 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. [Framework](/categories/framework)
4. /
5. dlunire/dlunire

ActiveProject[Framework](/categories/framework)

dlunire/dlunire
===============

DLUnire — framework PHP orientado a API. Skeleton, controladores, rutas JSON, ORM, .env.type tipado. Kernel DLCore, HTTP DLRoute y almacenamiento DLStorage.

v1.0.3(3mo ago)219↓86.4%MITPHP

Since Jun 9Pushed 2w ago1 watchersCompare

[ Source](https://github.com/dlunire/dlunire)[ Packagist](https://packagist.org/packages/dlunire/dlunire)[ Docs](https://dlunire.pro/)[ RSS](/packages/dlunire-dlunire/feed)WikiDiscussions master Synced 1w ago

READMEChangelogDependencies (2)Versions (5)Used By (0)

DLUnire
=======

[](#dlunire)

Framework PHP **orientado a API**: skeleton + kernel **DLCore**, HTTP **DLRoute** y almacenamiento **DLStorage**. Rutas y controladores pensados para JSON/respuestas de datos, ORM, `.env.type` tipado. Las plantillas HTML son opcionales (p. ej. la bienvenida del skeleton); el uso principal es **backend y APIs**.

**Sitio:** [dlunire.dev](https://dlunire.dev) · **Tienda (licencia comercial):** [store.dlunire.dev](https://store.dlunire.dev)

---

Requisitos
----------

[](#requisitos)

- PHP **≥ 8.2**
- Composer 2
- Extensiones habituales de PHP para web/BD (según su proyecto)

---

Instalación
-----------

[](#instalación)

```
composer create-project dlunire/dlunire mi-app
cd mi-app
# Tras create-project se ejecuta bin/setup-env.php (crea .env.type si no existe)
# Edite .env.type (base de datos, prefijo, etc.)
composer run dev
```

Al crear el proyecto, Composer corre el script **`post-create-project-cmd`**: genera `.env.type` copiando `.env.type.example` (con spinner en terminal interactiva). Si el archivo ya existe, no lo sobrescribe. También puede lanzarlo a mano:

```
composer run setup-env
# o: php bin/setup-env.php
```

Abra `http://localhost:3000/`. Document root: `public/`.

Equivalente al servidor de desarrollo:

```
php -S localhost:3000 -t public/
```

### Extensión VS Code / Open VSX

[](#extensión-vs-code--open-vsx)

Resaltado de `.env.type`: [DL Typed Environment](https://marketplace.visualstudio.com/items?itemName=dlunire.dlunire-envtype)

---

Estructura (mínima)
-------------------

[](#estructura-mínima)

```
/
├── public/           # Entrada web: index.php, style.css, welcome.js
├── app/              # Su código: Controllers, Models, Auth, Helpers…
├── routes/           # Rutas HTTP
├── resources/        # Plantillas (welcome + layouts/icons)
├── boot/             # Project::run(), CORS
├── dlunire/          # Capa base del skeleton (Controller, sesión, etc.)
├── tests/            # PHPUnit
├── .env.type.example
└── vendor/           # Composer (dlcore → dlroute, dlstorage)

```

Añada carpetas solo cuando las necesite (p. ej. más layouts, tests de feature).

**`.build/`** se crea solo al ejecutar la app: DLCore compila ahí las plantillas (`resources/*.template.html` → PHP en caché). No la versiona; está en `.gitignore`. Puede borrarla cuando quiera; se regenera al siguiente request.

CapaPaqueteRolAplicación`dlunire/dlunire`Skeleton que usted personalizaKernel`dlunire/dlcore`ORM, vistas, `.env.type`, correoHTTP`dlunire/dlroute`Rutas y peticionesPersistencia`dlunire/dlstorage`Binario / credenciales cifradas`create-project` declara `dlcore`; DLRoute y DLStorage entran como dependencias transitivas.

---

Inicio rápido (código)
----------------------

[](#inicio-rápido-código)

### Rutas (`routes/web.php`)

[](#rutas-routeswebphp)

```
use DLRoute\Requests\DLRoute;

DLRoute::get('/api/health', fn () => ['status' => 'ok']);

DLRoute::get('/user/{id}', [UserController::class, 'show'])
    ->filter_by_type(['id' => 'integer']);
```

Tres formas: callback, `[Controller::class, 'method']`, o cadena `"Namespace\\Ctrl@method"`.

### Controladores

[](#controladores)

Extienden `Framework\Config\Controller`:

```
$values = $this->get_values();
$email  = $this->get_email('email');
```

### Modelos y ORM (ejemplo rápido)

[](#modelos-y-orm-ejemplo-rápido)

En `.env.type` (además de host/usuario/clave de MySQL):

```
DL_DATABASE_NAME: string = "mi_app"
DL_DATABASE_DRIVE: string = "mysql"
DL_PREFIX: string = "dl_"
MULTITENANT: boolean = false

```

```
namespace DLUnire\Models;

use DLCore\Database\Model;

final class Products extends Model {}
// Con DL_PREFIX = "dl_" → tabla dl_products
```

```
use DLUnire\Models\Products;
use DLCore\Database\Model;

Products::create(['product_name' => 'Teclado', 'price' => 189000]);
$rows = Products::get(); // tope de seguridad (~1000 filas), no toda la tabla
$items = Products::where('price', '>', '100000')->get();
$page = Products::paginate(page: 1, rows: 20); // listados recomendados
// $all = Products::all(); // sin tope — solo si el conjunto es acotado
```

En la bienvenida del skeleton: sección **Inicio rápido · base de datos** (`#inicio-orm`).

### Entorno

[](#entorno)

Copie `.env.type.example` → `.env.type`. Cada variable tiene tipo estático (`boolean`, `string`, `integer`, `email`, `uuid`, …).

CORS (API desde otro origen) se configura con hosts separados por comas:

```
DL_CORS_ORIGINS: string = "localhost,127.0.0.1,app.ejemplo.com"

```

Si se omite, se permiten `localhost` y `127.0.0.1`.

---

Funcionalidades en desarrollo
-----------------------------

[](#funcionalidades-en-desarrollo)

### DLAuth

[](#dlauth)

Autenticador **básico** del kernel, **en desarrollo**. Sirve para demos o pruebas muy simples. **No se recomienda** en aplicaciones reales ni en producción.

Mientras no exista un autenticador robusto en DLUnire, use otra solución en su capa de aplicación (JWT, OAuth2/OIDC, librerías maduras, IdP de su infraestructura).

### MULTITENANT

[](#multitenant)

La variable `MULTITENANT` puede declararse en `.env.type`, pero el modo SaaS (una base por dominio) **aún no está terminado** (depende de **DLParse**).

En monoinquilino:

```
MULTITENANT: boolean = false

```

---

Licencia
--------

[](#licencia)

Este proyecto se distribuye bajo **AGPL-3.0-or-later**.

- Texto: [`LICENSE`](./LICENSE)
- SPDX: [AGPL-3.0-or-later](https://spdx.org/licenses/AGPL-3.0-or-later.html)

Puede desarrollar y probar con libertad. Para **despliegue cerrado** a terceros por red sin publicar el código de su aplicación bajo AGPL, vea la oferta comercial en [store.dlunire.dev](https://store.dlunire.dev/).

---

Pruebas
-------

[](#pruebas)

```
composer test
```

---

Tutorial del skeleton
---------------------

[](#tutorial-del-skeleton)

Guía progresiva (API first, bootstrap, rutas, ORM, licencia):

→ **[`docs/tutorial/README.md`](docs/tutorial/README.md)**

---

TODO
----

[](#todo)

- **Publicar la nueva versión del skeleton** (`dlunire/dlunire`) cuando estén listos los cambios en el **núcleo** (`dlunire/dlcore`) y, si aplica, en el **enrutador** (`dlunire/dlroute`). Hasta entonces no hay release de esta línea de trabajo.

Los cambios ya preparados para ese release están en **[CHANGELOG.md](CHANGELOG.md)** bajo **`[Unreleased]`**.

Enlaces
-------

[](#enlaces)

RecursoURLSitioTienda / comercialRepositorioTutorial skeleton[docs/tutorial/](docs/tutorial/README.md)Changelog[CHANGELOG.md](CHANGELOG.md)Tutorial kernel (DLCore)Tutorial DLRouteTutorial DLStorage---

Autor
-----

[](#autor)

**David E Luna M** · DLUnire
© 2026 · Todos los derechos reservados sobre la marca y materiales no cubiertos por la licencia de código.

###  Health Score

39

—

LowBetter than 84% of packages

Maintenance90

Actively maintained with recent releases

Popularity10

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity41

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

Every ~112 days

Total

4

Last Release

97d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/28575628?v=4)[DLUnire Runtime](/maintainers/dlunire)[@dlunire](https://github.com/dlunire)

---

Top Contributors

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

### Embed Badge

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

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

###  Alternatives

[shopware/platform

The Shopware e-commerce core

3.4k1.5M3](/packages/shopware-platform)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

595.8M674](/packages/shopware-core)[helsingborg-stad/municipio

A bootstrap theme for creating municipality sites.

4028.6k10](/packages/helsingborg-stad-municipio)[civicrm/civicrm-core

Open source constituent relationship management for non-profits, NGOs and advocacy organizations.

762297.9k53](/packages/civicrm-civicrm-core)[verbb/formie

The most user-friendly forms plugin for Craft.

101400.6k78](/packages/verbb-formie)[craftcms/commerce

Craft Commerce

240429.5k211](/packages/craftcms-commerce)

PHPackages © 2026

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