PHPackages                             jarscr/teo - 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. jarscr/teo

ActiveProject[Framework](/categories/framework)

jarscr/teo
==========

TEO Simple PHP Framework for building web applications in PHP

1.0.7(2y ago)527MITPHPPHP ~8.1

Since Dec 29Pushed 2y agoCompare

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

READMEChangelog (10)Dependencies (7)Versions (7)Used By (0)

[![](https://raw.githubusercontent.com/jarscr/teo/master/public/static/img/logos/logo-teo.png)](https://jarscr.com)

[![PHP Version](https://camo.githubusercontent.com/cbb9f4d1cb09ea57f013e705f830aeb4348bdab0bd27d563cb45101007d4dcdf/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d5e382e322d627269676874677265656e2e737667)](https://packagist.org/packages/jarscr/teo)[![Total Downloads](https://camo.githubusercontent.com/6ed2e1062388d217a72611557a1f363ca2555e20cf1000db31b5d76787db9018/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6a61727363722f74656f)](https://packagist.org/packages/jarscr/teo)[![Latest Stable Version](https://camo.githubusercontent.com/651f26a8a06989f15793abe47f2bf47e91c8e57998bb427bff5328b2d3466975/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6a61727363722f74656f)](https://packagist.org/packages/jarscr/teo)[![Build Status](https://camo.githubusercontent.com/5e15e433b4f41f3cb37891a0d8dcd1e9fc8a002decd1cefdfa00936397ede301/68747470733a2f2f6170692e7472617669732d63692e636f6d2f6a61727363722f74656f2e737667)](https://packagist.org/packages/jarscr/teo)[![License](https://camo.githubusercontent.com/6f3284805f91be2ad0d4372df638eb40a73c30ea64b1e5b1edcc2a9b29b1da0a/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6a61727363722f74656f)](https://packagist.org/packages/jarscr/teo)

Acerca de TEO Simple PHP Framework
==================================

[](#acerca-de-teo-simple-php-framework)

TEO es un Framework en PHP para construir aplicaciones Web y Sitios Web. Es gratis y [open-source](LICENSE).

Este proyecto esta basado en MVC [daveh/php-mvc](https://github.com/daveh/php-mvc)

Iniciar usando el framework
---------------------------

[](#iniciar-usando-el-framework)

1. Primero, instale el proyecto con **composer create-project jarscr/teo app-ejemplo**.
2. Ejecuta **composer update** para instalar las dependecias.
3. Configure el servidor web para que apunte a la carpeta **public** como web root.
4. Abra [App/Config.php](App/Config.php) y ingrese los datos de conexión con la base de datos.
5. Crea rutas, agrega controladores, vistas y modelos.

Revisa las instrucciones para que puedas usar este framework.

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

[](#configuración)

Configuration settings are stored in the [App/Config.php](App/Config.php) class. Default settings include database connection data and a setting to show or hide error detail. You can access the settings in your code like this: `Config::DB_HOST`. You can add your own configuration settings in here.

Rutas
-----

[](#rutas)

Las [Rutas](Core/Router.php) traduce las URL en controladores y acciones. Las rutas se agregan en el \[controlador\] (public/index.php). Se incluye una ruta de inicio de muestra que se enruta a la acción `index` en el [controlador de home](App/Controllers/Home.php).

Las rutas se agregan con el método `add`. Puede agregar rutas URL fijas y especificar el controlador y la acción, así:

```
$router->add('', ['controller' => 'Home', 'action' => 'index']);
$router->add('posts/index', ['controller' => 'Posts', 'action' => 'index']);
```

O puede agregar **variables** de ruta, así:

```
$router->add('{controller}/{action}');
```

Además de **controller** y **action**, puede especificar cualquier parámetro que desee entre llaves y también especificar una expresión regular personalizada para ese parámetro:

```
$router->add('{controller}/{id:\d+}/{action}');
```

También puede especificar un espacio de nombres para el controlador:

```
$router->add('admin/{controller}/{action}', ['namespace' => 'Admin']);
```

Controladores
-------------

[](#controladores)

Los controladores responden a las acciones del usuario (hacer clic en un enlace, enviar un formulario, etc.). Los controladores son clases que amplían la clase \[Core\\Controller\] (Core/Controller.php).

Los controladores se almacenan en la carpeta `App/Controllers`. Se incluye una muestra de \[Home controller\] (App/Controllers/Home.php). Las clases de controlador deben estar en el espacio de nombres `App/Controllers`. Puede agregar sub directorios para organizar sus controladores, por lo que al agregar una ruta para estos controladores, debe especificar el espacio de nombres (consulte la sección de enrutamiento anterior).

Las clases de controlador contienen métodos que son las acciones. Para crear una acción, agregue el sufijo \*\* `Action` \*\* al nombre del método. El controlador de muestra en \[App/Controllers/Home.php\] (App/Controllers/Home.php) tiene una acción "index" de muestra.

Puede acceder a los parámetros de ruta (por ejemplo, el parámetro \*\* id \*\* que se muestra en los ejemplos de ruta anteriores) en acciones a través de la propiedad `$ this->route_params`.

### Action filters

[](#action-filters)

Los controladores pueden tener métodos de filtrado **before** y **after**. Estos son métodos que se llaman antes y después de **cada** llamada al método de acción en un controlador. Útil para la autenticación, por ejemplo, asegurarse de que un usuario haya iniciado sesión antes de permitirle ejecutar una acción. Opcionalmente, agregue un **antes del filtro** a un controlador como este:

```
/**
 * Before filter. Return false to stop the action from executing.
 *
 * @return void
 */
protected function before()
{
}
```

Para detener la ejecución de la acción llamada originalmente, devuelve `false` del método de filtro anterior. Se agrega un **filtro posterior** así:

```
/**
 * After filter.
 *
 * @return void
 */
protected function after()
{
}
```

Vistas
------

[](#vistas)

Las vistas se utilizan para mostrar información (normalmente HTML). Los archivos de visualización van en la carpeta `App/Views`. Las vistas pueden estar en uno de dos formatos: PHP estándar, pero con PHP suficiente para mostrar los datos. Ningún acceso a la base de datos ni nada parecido debería ocurrir en un archivo de vista. Puede representar una vista PHP estándar en un controlador, opcionalmente pasando variables, como esta:

```
View::render('Home/index.php', [
    'name'    => 'Dave',
    'colours' => ['red', 'green', 'blue']
]);
```

El segundo formato utiliza el motor de plantillas \[Twig\] (). El uso de Twig le permite tener plantillas más simples y seguras que pueden aprovechar cosas como \[herencia de plantillas\] (). Puede renderizar una plantilla Twig como esta:

```
View::renderTemplate('Home/index.html', [
    'name'    => 'Dave',
    'colours' => ['red', 'green', 'blue']
]);
```

Se incluye una plantilla de muestra de Twig en [App/Views/Home/index.html](App/Views/Home/index.html) que hereda de la plantilla base en [App/Views/base.html](App/Views/base.html).

Modelos
-------

[](#modelos)

Los modelos se utilizan para obtener y almacenar datos en su aplicación. No saben nada sobre cómo se presentarán estos datos en las vistas. Los modelos extienden la clase `Core\Model` y usan \[PDO\] () para acceder a la base de datos. Están almacenados en la carpeta `App/Models`. Se incluye una clase de modelo de usuario de muestra en [App/Models/User.php](App/Models/User.php). Puede obtener la instancia de conexión de la base de datos PDO de esta manera:

```
$db = static::getDB();
```

Errores
-------

[](#errores)

Si la configuración de `SHOW_ERRORS` se establece en `true`, el navegador mostrará todos los detalles del error si se produce un error o una excepción. Si se establece en `false`", se mostrará un mensaje genérico mediante [App/Views/404.html](App/Views/404.html) o [App/Views/500.html](App/Views/500.html) vistas, según el error.

En este proyecto usamos Sentry.io para monitorear los errores.

Configuración del servidor web
------------------------------

[](#configuración-del-servidor-web)

Las URL amigables se habilitan mediante reglas de reescritura del servidor web. Se incluye un archivo \[.htaccess\] (public/.htaccess) en la carpeta `public`.

La configuración equivalente de nginx se encuentra en el archivo \[nginx-configuration.txt\] (nginx-configuration.txt).

---

Licencia
--------

[](#licencia)

Teo PHP MVC es un software open-sourced licenciado bajo [MIT license](https://opensource.org/licenses/MIT).

Desarrolla
----------

[](#desarrolla)

[![](https://raw.githubusercontent.com/jarscr/teo/master/public/static/img/logos/logo-jarscr.png)](https://jarscr.com)

###  Health Score

30

—

LowBetter than 62% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity12

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity67

Established project with proven stability

 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 ~222 days

Recently: every ~277 days

Total

6

Last Release

902d ago

PHP version history (2 changes)1.0.0PHP ~7.3

1.0.7PHP ~8.1

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/3277029?v=4)[Alfredo Rodriguez Siles](/maintainers/jarscr)[@jarscr](https://github.com/jarscr)

---

Top Contributors

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

---

Tags

phpframeworkwebmvcCosta Ricajarscrteo

###  Code Quality

TestsPHPUnit

### Embed Badge

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

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

###  Alternatives

[easycorp/easyadmin-bundle

Admin generator for Symfony applications

4.3k17.9M388](/packages/easycorp-easyadmin-bundle)[shopware/platform

The Shopware e-commerce core

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

Content &amp; Product Management Framework (CMS/PIM/E-Commerce)

3.8k3.8M508](/packages/pimcore-pimcore)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

585.6M568](/packages/shopware-core)[sulu/sulu

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

1.3k1.4M203](/packages/sulu-sulu)[open-dxp/opendxp

Content &amp; Product Management Framework (CMS/PIM)

9421.6k61](/packages/open-dxp-opendxp)

PHPackages © 2026

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