lark/app

Lark 应用程序

0.25.0 2023-05-18 14:24 UTC

This package is auto-updated.

Last update: 2024-09-18 17:27:33 UTC


README

Lark 是一个现代、轻量级的应用程序框架,专门设计用于开发 REST API。

安装

创建项目目录并移动到项目目录

mkdir myapp
cd myapp

使用 composer 安装

composer create-project lark/app ./

然后,初始化项目

./lark --init

控制台

Lark 控制台可用于协助创建路由、模式、模型和修订。Lark 控制台可以从项目根目录运行。

./lark route items

也可以使用命名空间。

./lark route api/items

使用 ./lark./lark help 查看所有命令。使用 ./lark help COMMAND 查看特定命令的帮助信息。

中间件

app/Middleware 目录中创建中间件文件。

示例中间件类

namespace App\Middleware;
use Lark\Request;
use Lark\Response;

class UserMiddleware
{
	public function auth(Request $req, Response $res): void
	{
		// auth here
	}
}

对于此示例,中间件可以在 app/routes.php 中设置,如下所示:

router()->matched([App\Middleware\UserMiddleware::class, "auth"]);

请阅读关于中间件的 框架文档

应用程序类

#todo 关于应用程序类属性和方法的文档

MVC 应用程序

Lark 可以使用 MVC 应用程序中常见的控制器。在 app/Controller 目录中创建控制器文件并扩展基本 App\Controller 类。

示例基本控制器类 app/Controller.php

namespace App;
use Lark\Response;

abstract class Controller
{
	protected Response $res;

	public function __construct()
	{
		$this->res = res();
	}
}

示例控制器类 app/Controller/ItemsController.php

namespace App\Controller;
use App\Model\Item as ItemModel;

class ItemsController extends \App\Controller
{
    private ItemModel $model;

	public function __construct()
	{
		$this->model = new ItemModel;
	}

	public function get(): void
	{
		$this->res->json(
			$this->model->find()
		);
	}
}

对于此示例,可以在 app/routes.php 中设置路由,如下所示:

router()->get("/items", [App\Controller\ItemsController::class, "get"]);

请阅读关于路由操作的 框架文档

自定义验证规则

自定义验证规则应在 app/Validator 目录中创建,例如 app/Validator/MyRule.php

请阅读关于自定义验证规则的 框架文档