topthink / think-annotation
Annotation For ThinkPHP6
Installs: 20 894
Dependents: 11
Suggesters: 0
Security: 0
Stars: 45
Watchers: 4
Forks: 22
Open Issues: 5
Requires
- php: ^8.0
- ergebnis/classy: ^1.4
- topthink/framework: ^6.0 || ^8.0
Requires (Dev)
README
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 { //... }