PHPackages                             foca/nexus-router - 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. foca/nexus-router

ActiveLibrary

foca/nexus-router
=================

NexusRouter is a PHP router designed to simplify the creation and management of routes in your project. With NexusRouter, you can easily define the routes and controllers you want to use in your web application.

1.0.0(2y ago)216MITPHPPHP ^8.0

Since Jul 17Pushed 2y ago2 watchersCompare

[ Source](https://github.com/Alexander-Calderon/nexus-router)[ Packagist](https://packagist.org/packages/foca/nexus-router)[ RSS](/packages/foca-nexus-router/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (2)Used By (0)

 [![NexusRouter Icon](https://camo.githubusercontent.com/c248f47b85d17849a97b4dc5518ef54a1f3f48e3a6b6df20012c6376ff788ad2/68747470733a2f2f692e6962622e636f2f795238463446432f6e65787573726f75746572332d73686f72742e706e67)](https://camo.githubusercontent.com/c248f47b85d17849a97b4dc5518ef54a1f3f48e3a6b6df20012c6376ff788ad2/68747470733a2f2f692e6962622e636f2f795238463446432f6e65787573726f75746572332d73686f72742e706e67)

NexusRouter
===========

[](#nexusrouter)

NexusRouter es un enrutador de PHP diseñado para simplificar la creación y gestión de rutas en tu proyecto. Con NexusRouter, puedes definir fácilmente las rutas y controladores que deseas utilizar en tu aplicación web.

Resumen
-------

[](#resumen)

NexusRouter es una herramienta poderosa que ofrece numerosas ventajas para la implementación de rutas en tus proyectos en entornos de producción y pruebas. Algunas de las ventajas clave de NexusRouter incluyen:

- **Fácil implementación**: NexusRouter se integra de manera sencilla en tus proyectos existentes. Solo necesitas agregar la carpeta `nexus-router` en tu proyecto y realizar una simple importación del archivo `NexusLoader.php` en el archivo `index.php` de la raíz del proyecto.
- **Flexibilidad en el manejo de rutas**: Puedes utilizar rutas a controladores o callbacks, lo que te brinda la libertad de elegir cómo manejar las solicitudes entrantes. Puedes definir rutas que se redirijan a controladores específicos o utilizar callbacks personalizados para ejecutar código en respuesta a una ruta determinada.
- **Precisión en las rutas**: NexusRouter te permite definir rutas exactas, validando cada segmento de ruta y segmentos que se comportarán como valores. Esto te da un mayor control sobre cómo se manejan las solicitudes y cómo se accede a los parámetros de la ruta en el controlador o archivo importado, evitando comportamientos indeseados.
- **Metadata para rutas**: NexusRouter te permite pasar una variable `$metadata` con cada ruta, que puede ser de cualquier tipo (mixed). Esta variable de metadata proporciona información adicional sobre la ruta y puede ser accedida desde el controlador o archivo importado asociado.

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

[](#instalación)

### Instalación Básica

[](#instalación-básica)

Para comenzar a usar NexusRouter en tu proyecto de forma básica, sigue los siguientes pasos:

1. Descarga el proyecto clonando el repositorio, este generará la carpeta `nexus-router` , colócala en cualquier ubicación dentro de tu proyecto.
2. Asegúrate de que el archivo `NexusLoader.php` esté importado en el archivo `index.php` de la raíz de tu proyecto. Esto permitirá que NexusRouter se cargue correctamente cuando se acceda a tu aplicación.
3. Incluye el archivo `.htaccess` en la raíz de tu proyecto. Este archivo es necesario para que NexusRouter funcione correctamente con el servidor Apache.
4. Dentro de la carpeta `nexus-router`, encontrarás un archivo llamado `routes.php`. En este archivo, puedes definir todas las rutas que deseas controlar utilizando NexusRouter.

### Instalación usando Composer

[](#instalación-usando-composer)

Si prefieres utilizar Composer para administrar las dependencias de tu proyecto, puedes instalar NexusRouter de la siguiente manera:

1. En la terminal, navega hasta el directorio raíz de tu proyecto.
2. Si aún no tienes un archivo `composer.json` en tu proyecto, ejecuta el siguiente comando para crearlo:

    ```
    composer init
    ```

    Este comando te guiará a través de la creación del archivo `composer.json` con información básica sobre tu proyecto.

    > **Nota**: Si ya tienes un archivo `composer.json`, puedes omitir este paso.
3. Una vez que tengas el archivo `composer.json`, ejecuta el siguiente comando para agregar NexusRouter como una dependencia en tu proyecto:

    ```
    composer require foca/nexus-router
    ```

    Esto descargará e instalará NexusRouter y sus dependencias en la carpeta `vendor` de tu proyecto, y actualizará automáticamente el archivo `composer.json` con la nueva dependencia.
4. Incluye el archivo `autoload.php` generado por Composer en tu archivo `index.php` de la siguiente manera:

    ```
    require 'vendor/autoload.php';
    ```

    Este cargará automáticamente el `NexusRouter` por lo que ya no es necesario importar el archivo `NexusLoader.php`.
5. Asegúrate de que el archivo `.htaccess` esté presente en la raíz de tu proyecto.
6. Dentro de la carpeta `vendor/foca/nexus-router`, encontrarás un archivo llamado `routes.php`. En este archivo, puedes definir todas las rutas que deseas controlar utilizando NexusRouter.

> **Nota**: Los archivos de ejemplo `index.php` y `.htaccess` se pueden encontrar en la carpeta del paquete instalado, en este caso `vendor/foca/nexus-router`.

Configuración Flexible de Rutas
-------------------------------

[](#configuración-flexible-de-rutas)

Antes de utilizar NexusRouter en tu proyecto, puedes configurar si deseas cargar o no las rutas desde el archivo `routes.php`. Esta configuración se realiza en el archivo `config.php` ubicado en la carpeta `nexus-router`.

Para controlar la carga de rutas desde el archivo `routes.php`, sigue estos pasos:

1. Abre el archivo `config.php` ubicado en la carpeta `nexus-router`.
2. Busca la constante llamada `ENABLE_ROUTES_FILE` y configúrala según tus necesidades:

    ```
    public const ENABLE_ROUTES_FILE = true; // Cargar rutas desde routes.php
    // public const ENABLE_ROUTES_FILE = false; // No cargar rutas desde routes.php
    ```

    - Si estableces `ENABLE_ROUTES_FILE` como `true`, NexusRouter

cargará las rutas definidas en el archivo `routes.php`.

- Si estableces `ENABLE_ROUTES_FILE` como `false`, NexusRouter no cargará las rutas desde el archivo `routes.php`.

Recuerda que también puedes definir rutas directamente en el archivo `index.php` antes de la instanciación de `NexusLoader` si `ENABLE_ROUTES_FILE` está configurado como `false`. Esto te brinda flexibilidad para agregar rutas adicionales o condiciones personalizadas en tu archivo `index.php`.

Ejemplos de Rutas
-----------------

[](#ejemplos-de-rutas)

Aquí hay algunos ejemplos de cómo definir rutas utilizando NexusRouter en el archivo `routes.php`:

```
// Ruta simple
Router::get('/users' , 'Controllers/User');

// Ruta con parámetro
Router::get('/users/$list', 'Controllers/User');

// Ruta con parámetro y valor inyectado
Router::get('/users/$list', 'Controllers/User', "getUsers");
```

Sintaxis alternativa `Fluent Design`

```
Router::get('/users' , 'Controllers/User')
      ->get('/users/$list', 'Controllers/User')
      ->get('/users/$list', 'Controllers/User', "getUsers");
```

Puedes agregar tantas rutas como necesites, especificando el método HTTP correspondiente (por ejemplo, `get`, `post`, `put`, `delete`) y el controlador al que se debe redirigir la ruta.

Ejemplos de Callbacks
---------------------

[](#ejemplos-de-callbacks)

Además de utilizar controladores, NexusRouter también te permite utilizar callbacks para manejar las rutas. Aquí tienes algunos ejemplos de cómo utilizar callbacks en NexusRouter:

```
// Callback simple: http://localhost/welcome
Router::get('/welcome', function(){
    echo 'I love Nexus Router!';
});

// Ejemplo con un parámetro: http://localhost/welcome/alexander
Router::get('/welcome/$name', function($param1){
    echo $param1 . ' loves Nexus Router!';
});

// Ejemplo con múltiples parámetros: http://localhost/welcome/alexander/calderon
Router::get('/welcome/$name/$lastname', function($param1,$param2){
    echo $param1 . ' ' . $param2 . ' loves Nexus Router!';
});
```

Puedes definir callbacks directamente en las rutas, lo que te permite ejecutar código personalizado para manejar la respuesta de la ruta.

Configuración
-------------

[](#configuración)

Si deseas personalizar la configuración de NexusRouter, puedes hacerlo modificando el archivo `config.php` ubicado en la carpeta `nexus-router`. En este archivo, puedes realizar los siguientes ajustes:

- `OUTPUT_MODE`: Define el formato de salida deseado para las respuestas. Puedes elegir entre "WEB", "JSON" o "XML".
- `SKIP_URL_PATH`: Si estás realizando pruebas y deseas omitir una parte específica de la URL, puedes configurar esta opción para eliminarla. Por ejemplo, si deseas omitir `/pruebas` de la URL `localhost/pruebas/users/1`, establece `/pruebas` en `'SKIP_URL_PATH'` , esto es útil para que al lanzar a producción, en tus rutas no tengas subcarpetas adicionales como el ejemplo `'/pruebas'`.

Atribución
----------

[](#atribución)

Por favor, asegúrate de mantener la atribución al autor original, Alexander Calderón, al utilizar NexusRouter en tu proyecto. Incluye una referencia al autor original y proporciona un enlace o crédito adecuado en tu documentación, página de créditos o cualquier otro lugar apropiado.

Licencia
--------

[](#licencia)

NexusRouter se distribuye bajo la Licencia MIT. Consulta el archivo `LICENSE` para obtener más información sobre los términos de la licencia.

---

¡Disfruta utilizando NexusRouter para simplificar el enrutamiento en tu proyecto! Si tienes alguna pregunta o problema, no dudes en ir a llorar a un rincón, comunicarte con el autor original o buscar ayuda en la documentación y recursos disponibles.

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity48

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

1034d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/c52b0900a1a9054e151e881b6eaf57133563a52f74e5008ae0293e930e7512d1?d=identicon)[Alexander-Calderon](/maintainers/Alexander-Calderon)

---

Top Contributors

[![Alexander-Calderon](https://avatars.githubusercontent.com/u/30130571?v=4)](https://github.com/Alexander-Calderon "Alexander-Calderon (38 commits)")

### Embed Badge

![Health badge](/badges/foca-nexus-router/health.svg)

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

PHPackages © 2026

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