PHP8版本
composer require topthink/think-annotation
配置文件位于
config/annotation.php
<?php
namespace app\controller;
use think\annotation\Inject;
use think\annotation\route\Get;
use think\annotation\route\Group;
use think\annotation\route\Middleware;
use think\annotation\route\Resource;
use think\annotation\route\Route;
use think\Cache;
use think\middleware\SessionInit;
#[Group("bb")]
#[Resource("aa")]
#[Middleware([SessionInit::class])]
class IndexController
{
#[Inject]
protected Cache $cache;
public function index()
{
//...
}
#[Route("GET","xx")]
public function xx()
{
//...
}
#[Get("cc")]
public function cc()
{
//...
}
}
默认会扫描controller目录下的所有类
可对个别目录单独配置
//...
"route" => [
"enable" => true,
"controllers" => [
app_path("controller/admin") => [
"name" => "admin/api",
"middleware" => [],
],
root_path("other/controller")
],
],
//...
<?php
namespace app\model;
use think\Model;
use think\annotation\model\relation\HasMany;
#[HasMany("articles", Article::class, "user_id")]
class User extends Model
{
//...
}