基于swoole的hyperf框架入门

原创
2020/04/18 11:49
阅读数 1.3K

使用hyperf主要还是要看文档,本文写的是一些不易发现的注意事项.

hyperf

框架思想和laravel类似,但是功能更强大,速度更快

laravel组件

hyperf使用了一些改造自laravel框架的组件,如果hyperf文档写的不详细,可以看laravel的文档.
但是有些laravel可以用的东西在hyperf是不支持的.
另外服务容器的介绍, 可以看laravel文档有介绍.

依赖注入

目的:自动解决类的依赖关系

前提 由DI容器创建的类才能使用依赖注入,而自己new的对象是不能实现依赖注入的.

注入的几种方式 :
1.构造方法注入,
2.注解
3.抽象对象注入,事先在配置文件绑定好接口类对应的具体类.
4.工厂对象注入,可以按配置文件处理一些事情

容器的注意事项

容器管理的对象都是单例,长生命周期.
如果想实现短生命周期 用make
甚至是make('abcd') 也行, 只要你在配置文件绑定了 'abcd' => ClassAbcd::class
这样就根据一个字符串获取一个对象

注解

极大的增加了写代码的效率,功能强大.
框架内置多种注解, 也可以自定义注解类.
最常用的是用Inject 注解 引入其他类到当前类的属性里.

事件机制

例如用户注册成功后,触发UserRegistered事件,发送短信和邮件.
解耦,易于维护

组件安装

很多组件需要手动安装,然后导入配置文件

AOP 面向切面编程

hyperf的文档AOP部分写的不详细,可以看这篇文章 https://cloud.tencent.com/developer/article/1555055

什么是AOP? 简单的说就是在方法的执行前后进行一些其他操作.
例如可以修改源方法的结果.

$result = $proceedingJoinPoint->process();
return 'Hello '.$result.'World';

例如加一个记录日志的功能, 不用在原来的方法里面写记日志代码, 而是通过AOP写日志,好处是解耦,如果有多个方法需要记录日志,只要在切面类加一个配置就行了
原方法专注执行自己核心业务逻辑,记日志是非核心功能.

swoole

官方推荐使用协程加通道CSP的编程模型。 借助协程的强大威力提高系统并发 swoole的一大核心功能就是协程能力。极大的增强了并发性能。是打造高并发系统必不可少的。 所以使用hyperf也要把协程利用起来。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部