composer require topthink/think-annotation
配置文件位于
config/annotation.php
<?php
namespace app\controller;
use think\annotation\Inject;
use think\annotation\Route;
use think\annotation\route\Group;
use think\annotation\route\Middleware;
use think\annotation\route\Resource;
use think\Cache;
use think\middleware\SessionInit;
/**
* Class IndexController
* @package app\controller
* @Group("bb")
* @Resource("aa")
* @Middleware({SessionInit::class})
*/
class IndexController
{
/**
* @Inject()
* @var Cache
*/
protected $cache;
public function index()
{
//...
}
/**
* @Route("xx")
*/
public function xx()
{
//...
}
}
<?php
namespace app\model;
use think\Model;
use think\annotation\model\relation\HasMany;
/**
* @HasMany("articles", model=Article::class, foreignKey="user_id")
*/
class User extends Model
{
//...
}
Some IDEs already provide support for annotations:
- Eclipse via the Symfony2 Plugin https://symfony.dubture.com/
- PHPStorm via the PHP Annotations Plugin https://plugins.jetbrains.com/plugin/7320 or the Symfony2 Plugin https://plugins.jetbrains.com/plugin/7219