PHPackages                             amazing79/simplex - 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. amazing79/simplex

ActiveProject[Framework](/categories/framework)

amazing79/simplex
=================

Implementacion del framework mediante el tutorial de symfony mas un bonus

v2.3.1(3mo ago)13MITPHPPHP &gt;=8.1CI passing

Since Sep 23Pushed 3mo agoCompare

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

READMEChangelog (4)Dependencies (7)Versions (8)Used By (0)

Simplex Framework
=================

[](#simplex-framework)

[![Build](https://github.com/amazing79/simplex/actions/workflows/phptests.yml/badge.svg)](https://github.com/amazing79/simplex/actions/workflows/phptests.yml/badge.svg)[![Total Downloads](https://camo.githubusercontent.com/f962e7992376b584982b4ef8ffe0f8a840d3841e2618cc948ef66fbb34a45284/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f616d617a696e6737392f73696d706c6578)](https://camo.githubusercontent.com/f962e7992376b584982b4ef8ffe0f8a840d3841e2618cc948ef66fbb34a45284/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f616d617a696e6737392f73696d706c6578)[![Latest Stable Version](https://camo.githubusercontent.com/9189e02ba14c0fa5794bac5c0a07f67adf013e3b521efd93bf4b6232f8e559e9/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f616d617a696e6737392f73696d706c6578)](https://packagist.org/packages/amazing79/simplex)[![License](https://camo.githubusercontent.com/00121ca91f581bb62dcef52bd118a315a415d0d146382ded485856f97a837e5a/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f616d617a696e6737392f73696d706c6578)](https://camo.githubusercontent.com/00121ca91f581bb62dcef52bd118a315a415d0d146382ded485856f97a837e5a/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f616d617a696e6737392f73696d706c6578)

Proyecto base en **PHP** con estructura mínima de carpetas (`app`, `src`, `config`, `public`, `test` ), pensado para iniciarlo rápido con [Composer](https://getcomposer.org/).

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

[](#-instalación)

Podés crear un nuevo proyecto a partir de este template con:

```
  composer create-project amazing79/simplex [nombre_proyecto]
```

Idea
----

[](#idea)

La idea fue replicar el tutorial [Create your own Framework](https://symfony.com/doc/8.0/create_framework/index.html) de Symfony. Con esta base, se propuso ajustar el framework para actualizar pequeñas aplicaciones que teniamos en php plano y mejorarlas sin la necesidad de requerir a frameworks gigantescos como laravel o láminas.

Segun el tutorial, tenemos dos puntos importantes:

- Un framework funcional con poco codigo
- Un Framework funcional pero que termina siendo un wrapper de la clase HttpKernel de Symfony

Se optó por continuar el desarrollo desde el primer punto pero agregando algunas funcionalidades más:

- Se agregó libreria para soporte de archivos .env [phpdotenv](https://github.com/vlucas/phpdotenv)
- Se agregó soporte de Inyectores de dependencias [PHP-DI](https://php-di.org/)
- Cambiar el punto de acceso de la App de /web/front.php a /public/index.php.
- Como chiche, se incluyo un archivo ".htaccess\_example" para reescribir las rutas de la app y cambiar el index.php/url por /url. Esto es opcional.
- El framework consta con test propios para validar que funcione ante eventuales cambios.
- Además, agregamos algunos scripts dentro de la configuracion de composer.

Para empezar a programar
------------------------

[](#para-empezar-a-programar)

Si querés empezar a programar, acordate de configurar lo siguiente (siempre y cuando lo necesites):

- Modelos
- Base de datos
- Otras configuraciones necesarias

Esto después lo agregas en los injectores de dependencias (dentro de config, hay algunos ejemplos) y ¡¡guala!!. Recordá agregar estas configuraciones desde tu punto de acceso a la app, es decir public/index.php.

Personalización
---------------

[](#personalización)

Recordá que este framework es personalizable, por lo cual si querés agregarle cosas al framework, hazlo a tu gusto. Podrás encontrar el código dentro del directorio src/. Todo lo demás, colocalo dentro de app/.

El funcionamiento es similar a otros frameworks. Aunque en el tutorial se seguía un enfoque orientado a Response/Request, se lo llevo a un enfoque MVC. Para entender un poco como funciona, se agregó un controller (IndexController) como también algunas plantillas de ejemplo (welcome, layout y error). Estas editar a gusto.

**Nota** Para entender mejor el funcionamiento de los objetos Response y Request, [ver la documentación de Symfony](https://symfony.com/doc/8.0/components/http_foundation.html)

Además, dentro de los scripts podemos:

Probar la app de bienvenida

```
  composer start
```

Correr los tests del framework

```
  composer tests
```

Modo de trabajo
---------------

[](#modo-de-trabajo)

Se incluyo un ejemplo de una página index con su controlador, a modo de entender un poco el funcionamiento. En corto:

- Configurar las dependencias según necesitemos (modelos, nuevos eventos, etc.).
- Reemplazar template de IndexController (welcome) y usar uno propio (también podemos editarlo, como prefieras).
- La metodologia es el patron MVC. Seguir este enfoque, y guardar los scripts en sus respectivas carpetas según su proposito.
- Los tests actualmente están funcionando, pero solo verifican el funcionamiento del framework desde el punto base. Modificaciones al framework por parte de uno podria incluir modificar los tests.
- Se modificó parte del codigo del tutorial para trabajar con Inyectores de dependencias y asi ser más flexible la configuracion del framework.
- Se provee un layout de ejemplo para ver como simplificar el codigo de nuestras vistas. Por lo tanto, para renderizar html contaremos con dos estrategias (HtmlRender y HtmlLayoutRender).
    - En el primero podremos incluir en la plantilla todo el html del documento.
    - En el segundo, las vistas solo necesitan contener html de la página a renderizar, esta luego se incorpora al layout mediante su propiedad {{content}}. Para acceder al mismo, podemos ingresar en la siguiente ruta: \[ruta\_principal/layout\]. Ejemplo: . Para personalizar el layout, ir a la carpeta Views/layout/
- Se agregó api para manejo de sesiones. Para mayor compatibilidad, se creó usando las interfaces nativas de php. Además, se agregó un controller base para extender en aquellos controladores que necesiten acceder a la session (este controller base emplea un trait)

Para marcar un punto personal desde donde empezamos a usarlo como framework, largamos la release de la version v2.0.0. Con esta version procedimos a actualizar un par de apps. Nuevamente, este framework tiene objetivo facilitarnos la actualización de sistemas viejos hechos con php plano.

Para desarrollar apps más complejas, usar otros frameworks.

### Agregados importantes

[](#agregados-importantes)

- Se agregó soporte de sesiones. Se crearon clases implementando interfaces nativas para tal fin.
- Las sesiones se pueden almacenar en el directorio temporal (por default), o configurarla guardar las mismas dentro de storage/sessions (usar valor en archivo .env). Además, dentro de storage/app podremos almacenar otra info que veamos necesaria. Usar a conveniencia.
- Se agregó controlador base de sesiones para ser extendido por aquellos controladores que lo necesiten.
- Se agregaron nuevos eventos para escuchar por listener. Estos son Request, exception, y not\_authorized.
- Con los eventos y las sesiones, se pueden crear listener para proteger accesos no autorizados, entre otras cosas.
- Se reestructuró organización de controladores, para tener más sentido. Ahora se proveen 2 controladores extensibles.
- Se agregó nuevo controller para facilitar la modificación del controlador principal sin que esto afecte a los tests.

[Clase Handler para el manejo de sesiones en archivos](./src/Simplex/Sessions/README.md)

[Clase SessionManager para acceder facilmente a la sesion en formato orientado a objetos.](./src/Simplex/Sessions/README.md#sessionmanager-y-staticsessionmanager)

[Trait para reutilizar la clase SessionManager en otras clases o controladores.](./src/Simplex/Traits/README.md)

[Clase AbstractSessionController extendible, el cual utiliza el trait anterior. Esto evita tener que incorporar el trait en todos los controladores.](./app/Controllers/README.md)

🧠 Autor
-------

[](#-autor)

Ignacio Jauregui — [GitHub](https://github.com/amazing79)

###  Health Score

38

—

LowBetter than 85% of packages

Maintenance82

Actively maintained with recent releases

Popularity5

Limited adoption so far

Community6

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

Every ~23 days

Recently: every ~34 days

Total

7

Last Release

95d ago

Major Versions

v1.0.1 → v2.0.02025-09-26

### Community

Maintainers

![](https://www.gravatar.com/avatar/0505b666a4d51f9b40e9c21ee45c62b056c9c4324cfde496c8f8d59fcfc8d24f?d=identicon)[amazing79](/maintainers/amazing79)

---

Top Contributors

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

###  Code Quality

TestsPHPUnit

### Embed Badge

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

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

###  Alternatives

[laravel/framework

The Laravel Framework.

34.7k509.9M17.0k](/packages/laravel-framework)[symfony/framework-bundle

Provides a tight integration between Symfony components and the Symfony full-stack framework

3.6k235.4M9.7k](/packages/symfony-framework-bundle)[shopware/platform

The Shopware e-commerce core

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

Drupal is an open source content management platform powering millions of websites and applications.

19562.3M1.3k](/packages/drupal-core)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.3M152](/packages/sulu-sulu)[prestashop/prestashop

PrestaShop is an Open Source e-commerce platform, committed to providing the best shopping cart experience for both merchants and customers.

9.0k15.4k](/packages/prestashop-prestashop)

PHPackages © 2026

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