jarscr/teo

TEO 简单的 PHP 框架,用于使用 PHP 构建网络应用程序

维护者

详细信息

github.com/jarscr/teo

主页

源代码

问题

安装: 20

依赖项: 0

建议者: 0

安全: 0

星星: 5

观察者: 1

分支: 0

公开问题: 0

类型:项目

1.0.7 2024-01-12 16:19 UTC

This package is auto-updated.

Last update: 2024-09-12 17:40:12 UTC


README

PHP Version Total Downloads Latest Stable Version Build Status License

关于 TEO 简单 PHP 框架

TEO 是一个用于构建 Web 应用程序和网站的 PHP 框架。它是免费的开源软件。

本项目基于 MVC daveh/php-mvc

使用框架开始

  1. 首先,使用 composer create-project jarscr/teo app-ejemplo 安装项目。
  2. 执行 composer update 以安装依赖项。
  3. 配置 Web 服务器以将 public 目录作为根目录。
  4. 打开 App/Config.php 并输入数据库连接信息。
  5. 创建路由,添加控制器、视图和模型。

查看说明,了解如何使用此框架。

配置

配置设置存储在 App/Config.php 类中。默认设置包括数据库连接数据和显示或隐藏错误详情的设置。您可以在代码中这样访问设置:Config::DB_HOST。您可以在其中添加自己的配置设置。

路由

路由将 URL 转换为控制器和动作。路由在 [控制器] (public/index.php) 中添加。包含一个示例路由,将路由到 主页控制器 中的 index 动作。

使用 add 方法添加路由。可以添加固定 URL 路由并指定控制器和动作,如下所示

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

或者可以添加 路由变量,如下所示

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

除了 controlleraction 之外,还可以在花括号中指定任何所需的参数,并可以为此参数指定一个自定义的正则表达式

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

也可以指定控制器的命名空间

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

控制器

控制器响应用户的动作(点击链接、提交表单等)。控制器是扩展 [Core\Controller] (Core/Controller.php) 类的类。

控制器存储在 App/Controllers 目录中。包含一个示例 [主页控制器] (App/Controllers/Home.php)。控制器类必须位于 App/Controllers 命名空间中。您可以添加子目录以组织控制器,因此为这些控制器添加路由时,必须指定命名空间(请参阅前面的路由部分)。

控制器类包含方法是动作。要创建一个动作,将 **Action** 后缀添加到方法名。示例控制器 [App/Controllers/Home.php] (App/Controllers/Home.php) 包含一个示例动作 "index"。

您可以通过 $ this->route_params 属性在动作中访问路由参数(例如,前面路由示例中显示的 **id** 参数)。

动作过滤器

控制器可以有 beforeafter 过滤方法。这些是在每次调用控制器动作方法之前和之后调用的方法。这对于认证很有用,例如,在允许用户执行操作之前确保用户已经登录。可选地,可以向控制器添加一个 before filter,如下所示:

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

要阻止原始动作的执行,在过滤方法中返回 false。添加 after filter 的方式如下:

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

视图

视图用于显示信息(通常是 HTML)。视图文件放在 App/Views 文件夹中。视图可以采用两种格式之一:PHP 标准格式,但足以显示数据。视图文件中不应访问数据库或类似内容。可以在控制器中将 PHP 视图表示为标准,可选地传递变量,如下所示:

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

第二种格式使用模板引擎 [Twig](《http://twig.sensiolabs.org/》)。使用 Twig 可以让您拥有更简单、更安全的模板,可以利用模板继承等功能(《http://twig.sensiolabs.org/doc/templates.html#template-inheritance》)。可以这样渲染一个 Twig 模板:

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

App/Views/Home/index.html 中包含了一个 Twig 模板示例,它继承自 App/Views/base.html 基础模板。

模型

模型用于在应用程序中获取和存储数据。模型不知道这些数据如何在视图中展示。模型扩展了 Core\Model 类,并使用 [PDO](《https://php.ac.cn/manual/en/book.pdo.php》)来访问数据库。模型存储在 App/Models 文件夹中。在 App/Models/User.php 中包含了一个用户模型示例。您可以使用以下方式获取 PDO 数据库连接实例:

$db = static::getDB();

错误

如果将 SHOW_ERRORS 配置设置为 true,则在发生错误或异常时,浏览器将显示所有错误详细信息。如果设置为 false,则根据错误显示通用的消息,通过 App/Views/404.htmlApp/Views/500.html 视图。

在这个项目中,我们使用 Sentry.io 来监控错误。

Web 服务器配置

通过服务器重写规则启用友好的 URL。在 public 文件夹中包含了一个 [htaccess](public/.htaccess)文件。

等效的 nginx 配置在 [nginx-configuration.txt](nginx-configuration.txt)文件中。

许可证

Teo PHP MVC 是一个开源软件,根据 MIT 许可证 授权。

开发