当前位置: 首页 > news >正文

hyperf注解,自定义注解

注解是 Hyperf 非常强大的一项功能,可以通过注解的形式减少很多的配置,以及实现很多非常方便的功能。

结构

在这里插入图片描述

建立注解

  1. app下建立Annotation注解文件夹

  2. Annotation下建立Jim.php注解

下面的的@Annotation @Target是全局注解,所以不需要use 引入
注解一共有 3 种应用对象,分别是 类、类方法 和 类属性
@Target()有三种方式 分别是 ALL 全部,CLASS 类,METHOD方法,PROPERTY属性

必须继承AbstractAnnotationuse Hyperf\Di\Annotation\AbstractAnnotation;

<?php
/*** Jim.php** Created on 2024-08-22-10:35* Created by xxp 332410549@qq.com*/namespace App\Annotation;use Hyperf\Di\Annotation\AbstractAnnotation;/*** @Annotation* @Target({"ALL"})*/
class Jim extends  AbstractAnnotation
{/*** @var string*/public $name = "";/*** @var int*/public $age = 0;}

调用注解

<?phpdeclare(strict_types=1);namespace App\Controller;use App\Annotation\Jim;
use Hyperf\Di\Annotation\AnnotationCollector;
use Hyperf\HttpServer\Annotation\AutoController;/*** @AutoController(prefix="user")* @Jim(name="nico",age="18")*/
class UserController extends AbstractController
{public function index(){var_dump(AnnotationCollector::getClassesByAnnotation(Jim::class));return 'user';}
}

结果

在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【第54课】XSS跨站Cookie盗取表单劫持网络钓鱼溯源分析项目平台框架
  • AList嵌入动态验证码实现动态校验
  • LaViT:Less-Attention Vision Transformer的特性与优点
  • 猫头虎 分享:如何用STAR(情境、任务、行动、结果)方法来结构化回答问题?
  • 网络安全-安全渗透简介和安全渗透环境准备
  • [开端]网络运维常用命令
  • 衡石科技BI的API如何授权文档解析
  • 基于微信小程序靓丽内蒙古APP(源码+定制+辅导)
  • SSRF漏洞与redis未授权访问的共同利用
  • 【案例58】WebSphere输出日志输出慢导致线程被阻塞
  • Windows安装nexus 私服仓库(6)
  • 【性能优化】:探索系统瓶颈的根源(一)
  • Modern restaurant - building and interior (餐厅场景)
  • linux命令 sudo and su
  • 【开发笔记】Notepad++配置
  • golang中接口赋值与方法集
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • maven工程打包jar以及java jar命令的classpath使用
  • Swift 中的尾递归和蹦床
  • Travix是如何部署应用程序到Kubernetes上的
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • 初识 beanstalkd
  • 汉诺塔算法
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 你不可错过的前端面试题(一)
  • 前端面试之CSS3新特性
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • #AngularJS#$sce.trustAsResourceUrl
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • ( 10 )MySQL中的外键
  • (02)vite环境变量配置
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (南京观海微电子)——示波器使用介绍
  • (算法二)滑动窗口
  • (五)关系数据库标准语言SQL
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • ..回顾17,展望18
  • .bat文件调用java类的main方法
  • .gitignore
  • .md即markdown文件的基本常用编写语法
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • ??javascript里的变量问题
  • @EnableAsync和@Async开始异步任务支持
  • [ C++ ] 类和对象( 下 )
  • [ 云计算 | AWS 实践 ] 基于 Amazon S3 协议搭建个人云存储服务
  • [10] CUDA程序性能的提升 与 流
  • [2018][note]用于超快偏振开关和动态光束分裂的all-optical有源THz超表——
  • [AHOI2009]中国象棋 DP,递推,组合数
  • [AR]Vumark(下一代条形码)
  • [AutoSar]工程中的cpuload陷阱(三)测试