手把手走入注解之注解收集

本文介绍了如何在Swoole框架下的注解实现,如Hyperf和Swoft,通过PHP反射机制收集类和方法注解,展示了注解在路由配置中的应用。作者通过代码示例详细解释了注解的工作原理和使用方法。
摘要由CSDN通过智能技术生成
前言

随着Swoole的不断的迭代,相应一些Swoole的协程框架也逐渐进入了大家的视野,比如:HyperfSwoft等;常驻内存的实现让PHP性能比传统PHP-FPM模式的框架有质的提升,依据Swoole开源的框架都提供了全面的开发组件,看过或使用过Hyperf、Swoft框架的小伙伴应该都知道,这些框架当中有类似SpringCloud框架灵活的注解,本文就以一个简单的demo实现一个注解的实现,方便大家更快速的了解注解。

什么是注解

注解的定义是:附加在数据/代码上的元数据(metadata)。

框架可以基于这些元信息为代码提供各种额外功能,本质上注解就是理解注解只是配置的另一种展现方式。

注解如何工作的

注解是如何在代码里面被识别,又是如何被调用的呢?带着疑问咱们一起来看代码,GitHubhttps://github.com/LoyaltyLu/annotation_demo这是我写的一个demo,里面包含了注解以及实现容器的一个简单的示例方便大家参看,再看文章前建议大家先看下这两个文档:Doctrine AnnotationsPHP反射

代码解析
注解收集

带大家通过demo简单了解下注解是如何被收集的。

类注解收集

index.php


<?php

$loader = require __DIR__ . "/vendor/autoload.php";

Core\Application::init($loader);

......

var_dump(\Core\Route::dispatch('/index/test'));

首先在index.php中使用composer 自动加载传入封装好的Application一个处理器类;调用init方法初始化。

Core\Application.php


<?php

namespace Core;

use Annotation\Parser\RequestMappingParser;

use Doctrine\Common\Annotations\AnnotationRegistry;

use \Doctrine\Common\Annotations;

/**

* 相当于一个处理器,做一些初始化工作

* Class Application

*

* @package Core

*
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张傲然

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值