使用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 面向切面编程
什么是AOP? 简单的说就是在方法的执行前后进行一些其他操作.
例如可以修改源方法的结果.
$result = $proceedingJoinPoint->process();
return 'Hello '.$result.'World';
例如加一个记录日志的功能, 不用在原来的方法里面写记日志代码, 而是通过AOP写日志,好处是解耦,如果有多个方法需要记录日志,只要在切面类加一个配置就行了
原方法专注执行自己核心业务逻辑,记日志是非核心功能.
swoole
官方推荐使用协程加通道CSP的编程模型。 借助协程的强大威力提高系统并发 swoole的一大核心功能就是协程能力。极大的增强了并发性能。是打造高并发系统必不可少的。 所以使用hyperf也要把协程利用起来。