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
{
    //...
}