hyperf 注解
作者:互联网
注释和注解区别
- 注释:给程序员看,帮助理解代码,对代码起到解释、说明的作用。
- 注解:给应用程序看,用于元数据的定义,单独使用时没有任何作用,需配合应用程序对其元数据进行利用才有作用。
注解方式
类
测试代码(app/indexController/test)
<?php
declare(strict_types=1);
namespace App\Controller;
use Hyperf\HttpServer\Annotation\AutoController;
/**
* @AutoController()
*/
class IndexController extends AbstractController{
public function test(){
$msg = '这个是@AutoController注解演示';
return [
'msg'=>$msg
];
}
}
访问测试代码
curl ip:9501/index/test
结果返回
{"msg":"这个是@AutoController注解演示"}
去除@AutoController()注解,重启服务,查看效果
curl ip:9501/index/test
Not Found
类方法
测试代码(/app/IndexController/test)
<?php
declare(strict_types=1);
namespace App\Controller;
use Hyperf\HttpServer\Contract\RequestInterface;
use Hyperf\HttpServer\Annotation\Controller;
use Hyperf\HttpServer\Annotation\RequestMapping;
/**
* @Controller()
*/
class IndexController extends AbstractController{
/**
* @RequestMapping(path="test",methods="get,post")
*/
public function test(RequestInterface $request){
$name = $request->input('name','');
$msg = '这个是@Controller注解演示';
return [
'msg'=>$msg,
'name'=>$name
];
}
}
访问测试代码
curl -H "Content-Type: application/json" -X GET -d '{"name": "huyongjian"}' 118.195.173.53:9501/index/test
结果返回
{"msg":"这个是@Controller注解演示","name":"huyongjian"}
类属性
测试代码(/app/IndexController/test)
<?php
declare(strict_types=1);
namespace App\Controller;
use Hyperf\HttpServer\Annotation\AutoController;
//第一步导入命名空间
use Hyperf\Contract\ConfigInterface;
use Hyperf\Di\Annotation\Inject;
/**
* @AutoController()
*/
class IndexController extends AbstractController{
//第二步 添加注解
/**
* @Inject()
* @var ConfigInterface
*/
private $config;
public function test(){
//第三步 获取配置值
//获取 config.php 里的内容
$appName = $this->config->get('app_name','');
$msg = '这个是属性注解演示';
return [
'msg'=>$msg,
'app_name'=>$appName
];
}
}
访问测试代码
curl 118.195.173.53:9501/index/test
结果返回
{"msg":"这个是属性注解演示","app_name":"skeleton"}
标签:name,测试代码,app,test,hyperf,msg,注解 来源: https://www.cnblogs.com/hu308830232/p/15240883.html