belicfr/mvclite

安装: 10

依赖: 0

建议者: 0

安全: 0

星标: 3

关注者: 1

分支: 1

开放问题: 1

类型:项目

1.1.2 2024-04-04 17:12 UTC

This package is auto-updated.

Last update: 2024-09-04 17:56:26 UTC


README

关于 MVCLite

MVCLite 是一个轻量级的 MVC(模型-视图-控制器)框架,用于在 PHP 中构建网络应用程序。它为您的应用程序代码库提供坚实的基础,包括如 中间件路由系统ORM(对象关系映射)、Twig 模板引擎集成等功能。

特性

  • 路由系统:定义清洁直观的 URL 路由来处理各种 HTTP 请求。
  • 中间件:轻松将预处理和后处理逻辑集成到应用程序的请求-响应周期中。
  • ORM(对象关系映射):通过将数据库表映射到 PHP 对象来简化数据库交互。
  • Twig 集成:使用 Twig 模板引擎在视图中将逻辑与表示分离。
  • 更多: MVCLite 包含许多其他功能,可简化您的开发过程。

安装

您可以通过 Composer 安装 MVCLite。在您的终端中运行以下命令

composer create-project belicfr/mvclite

安装 MVCLite 后,您必须在 config 目录中配置应用程序设置。 config.php 文件包含应用程序的主要设置。

const ROUTE_PATH_PREFIX = '/';

const DATABASE_CREDENTIALS = [

    "dbms"      =>  "mysql",

    "host"      =>  "localhost",
    "port"      =>  "3306",
    "charset"   =>  "utf8mb4",
    "name"      =>  "",
    "user"      =>  "",
    "password"  =>  ""

];

您还必须配置 htaccess 文件,您可以使用 .htaccess_example 文件作为基础。

RewriteEngine On
RewriteBase /website/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !src/resources/(.*)$

RewriteRule ^(.*)$ index.php?route=$1 [QSA,L]

使用方法

路由器

src/Router/routes.php 文件中定义您的应用程序的 路由。以下是一个简单路由的示例

Router::get('/path', Controller::class, "method");

您还可以定义具有自定义名称的 路由

Router::get('/path', Controller::class, "method")->setName('routeName');

ORM

内置的 ORM 允许您与数据库交互。以下是一个简单的 SELECT 查询示例

Model::select('column1', 'column2')
       ->where('column', 'value')
       ->orderBy('column', 'ASC')
       ->execute();

此功能仍在开发中,未来将添加更多功能。如果您想进行 自定义查询,可以使用 Database 类。

Database::query('INSERT INTO table (column1, column2) VALUES (?, ?)', ['value1', 'value2']);

中间件

中间件 用于在应用程序的请求-响应周期中执行预处理逻辑。您可以在控制器的构造函数中定义 中间件

public function __construct()
{
    $this->middleware(AuthMiddleware::class);
}

视图

MVCLite 使用 Twig 模板引擎在视图中将逻辑与表示分离。您可以在 src/Views 目录中创建视图,然后在 控制器 中渲染它们。

View::render('View', ['data' => $data]);

Twig

您可以使用 Twig 模板引擎创建视图。以下是一个简单的 Twig 模板示例

<!DOCTYPE html>
<html>
<head>
    <title>{{ title }}</title>
</head>
<body>
{% if bool %}
    <h1>{{ content1 }}</h1>
{% else %}
    <p>{{ content2 }}</p>
{% endif %}
{{ include('Footer.twig', {'data': data}) }}
</body>
</html>

贡献

请随时通过提交 pull request、打开 issue 或分享您对新的 功能 的想法来为 MVCLite 贡献。

许可

MVCLite 是开源软件,受 MIT 许可证 许可。

鸣谢

MVCLitebelicfr 维护

感谢所有帮助使 MVCLite 更好的贡献者