bain2018/think-annotation

Annotation For ThinkPHP6

v2.2.0 2024-03-29 08:44 UTC

This package is auto-updated.

Last update: 2024-10-29 10:13:42 UTC


README

PHP8版本 解决循环依赖问题

安装

composer require bain2018/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
{

    //...
}