定制 jarscr/teo 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

jarscr/teo

Composer 安装命令:

composer create-project jarscr/teo

包简介

TEO Simple PHP Framework for building web applications in PHP

README 文档

README

PHP Version Total Downloads Latest Stable Version Build Status License

Acerca de TEO Simple PHP Framework

TEO es un Framework en PHP para construir aplicaciones Web y Sitios Web. Es gratis y open-source.

Este proyecto esta basado en MVC daveh/php-mvc

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 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

Configuration settings are stored in the 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

Las Rutas 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.

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

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

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

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] (http://twig.sensiolabs.org/). El uso de Twig le permite tener plantillas más simples y seguras que pueden aprovechar cosas como [herencia de plantillas] (http://twig.sensiolabs.org/doc/templates.html#template-inheritance). 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 que hereda de la plantilla base en App/Views/base.html.

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] (http://php.net/manual/en/book.pdo.php) 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. Puede obtener la instancia de conexión de la base de datos PDO de esta manera:

$db = static::getDB();

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 o App/Views/500.html vistas, según el error.

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

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

Teo PHP MVC es un software open-sourced licenciado bajo MIT license.

Desarrolla

jarscr/teo 适用场景与选型建议

jarscr/teo 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 27 次下载、GitHub Stars 达 5, 最近一次更新时间为 2020 年 12 月 29 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「framework」 「php」 「web」 「mvc」 「Costa Rica」 「jarscr」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 jarscr/teo 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 jarscr/teo 我们能提供哪些服务?
定制开发 / 二次开发

基于 jarscr/teo 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 27
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 5
  • 点击次数: 5
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 5
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2020-12-29