
PHP
文章平均质量分 58
PHP语言
shang443
人在旅途,深浅自知。
展开
-
快捷键大全
6.快速选中代码的开头至结尾ctrl+shift+[或]11.快速打开项目中的文件ctrl+shift+N。4.类展开与关闭ctrl+shift+加号或减号。9.查看方法或变量定义ctrl+shift+i。1.查看当前类中的方法跟属性ctrl+F12。2.方法间快速移位alt+上箭头或者下箭头。3.方法展开与关闭ctrl+加号或减号。5.定位类的开始与结尾ctrl+[或]10.跳转到变量声明处ctrl+b。7.查看代码注释ctrl+q。8.显示默认参数ctrl+p。...原创 2022-07-25 16:05:00 · 215 阅读 · 0 评论 -
PSR编码规范
使用phpstorm进行编码时,编码完成,使用格式化代码快捷键ctrll+alt+L,自动格式化代码,遵循PSR4规范1.类名使用大驼峰2.属性名,方法名使用小驼峰3.常量全部字母大写4.类属性方法必须添加访问修饰符,abstract、final位于访问修饰符之前,static放于访问修饰符之后5.控制结构开始花括号必须写在声明的同一行,结束花括号必须在主体后自成一行6.类的开始花括号必须写在类声明后自成一行,结束花括号必须在类主体后自成一行7.方法的开始花括号必须写在方法声明后自成一行,结束花原创 2022-07-13 09:58:49 · 484 阅读 · 0 评论 -
Laravel源码解析之契约
Contract,翻译过来叫契约、协议等。在 Laravel-china 的翻译中,是一个不翻词,这里也使用 Contract 来代替。原创 2022-06-17 16:53:27 · 459 阅读 · 0 评论 -
Laravel源码解析之门面
Facade,一般翻译成外观或者门面。在 Laravel 的翻译文档中,是不翻词,这里我也直接使用 Facade 来表述。Facade 的主要作用,是 简化类调用的快捷语法 。因为在结构复杂,功能完善的框架中,往往类的结构,层次也比较复杂,Laravel 也是如此复杂的框架,因此为了简化使用,我们就定义了类的快捷访问方式,在 Laravel 中,就是 Facade!常规设计模式中的外观模式(Facade Pattern),就是解决快捷访问问题的,因此 Laravel 的 Facade 就是外观模式的实现。.原创 2022-06-17 16:42:21 · 571 阅读 · 0 评论 -
Laravel源码解析之服务提供者
官方文档中关于服务提供者的这篇文档,主要是说明如何编写自定义的服务提供者。本篇注解,就来说说啥是服务提供者,然后再总结一下如何编写服务提供者。服务提供者想要理解,首先需要理解什么是服务容器,可以移步服务容器 进行了解。在有了服务容器的概念后,就可以很容易的理解什么是服务提供者了。服务容器是盛放服务的容器,有绑定和解析两个主要操作。绑定就是将服务注册到容器中。而服务提供者,就是完成绑定服务到容器任务的单元。看名字就知道,是用来提供服务的单位。简言之,服务容器中绑定的服务,就是由服务提供者绑定进去的。...原创 2022-06-17 16:27:05 · 616 阅读 · 0 评论 -
Laravel源码解析之服务容器
官方文档中关于服务容器的介绍,主要是针对于这个服务容器提供的绑定,解析的语法上。是建立在读者对服务容器,依赖注入,控制反转有一定的认知的基础上进行说明的。本篇注解的主要目的就是在官方文档的基础上,补充上服务容器设计上的的内容,便于理解 Laravel 提供的语法。Laravel 的应用 Application 的实现就是一个服务容器,目的是用来管理 Laravel 框架中各种对某些对象的依赖关系。体现的设计思想是控制反转。...原创 2022-06-17 15:52:55 · 857 阅读 · 0 评论 -
Hyperf从入门到精通(11)
Hyperf从入门到精通(11)简介洋葱模型中间件类型全局类型中间件局部类型中间件注解定义配置文件定义中间件执行顺序生成中间件中间件执行流程演示控制器中间件对Request跟Response进行干预简介本节将讲述 Hyperf 里中间件使用方式和中间件的流程原理,包括通过 @Middlewares 和 @Middleware 注解来注册中间件,以及通过配置来注册中间件等多种形式,同时也演示了在中间件修改 Request 对象如何被后续中间件使用的同时被其它非中间件的逻辑使用。洋葱模型原理:图中的顺原创 2021-08-10 11:54:12 · 748 阅读 · 0 评论 -
Hyperf从入门到精通(1)
Hyperf从入门到精通(1)简述安装PHP安装swoole安装Hyperf压力测试简述Hyperf从入门到精通第一讲,介绍Hyperf框架的特点,手把手教你如何搭建一个高性能的微服务并进行压测演示。安装PHP安装swoole安装Hyperf压力测试...原创 2021-01-11 10:50:33 · 3427 阅读 · 1 评论 -
Hyperf从入门到精通(2)
Hyperf从入门到精通(2)简述路由定义通过配置文件定义路由通过注解定义路由@AutoController注解@Controller注解测试简述Hyperf 从入门到精通第二讲,讲述 HTTP 路由的定义及使用,包括配置文件定义路由和注解定义路由,同时引入注解的概念并讲述注释和注解的区别,以及注解的基本实现流程。路由定义通过配置文件定义路由Router::get("/hello-hyperf", function () { return 'Hello,Hyperf';});Rout原创 2021-01-13 16:03:45 · 831 阅读 · 1 评论 -
Hyperf从入门到精通(3)
Hyperf从入门到精通(3)简介简单对象构造函数注入简单对象@Inject 注解注入抽象对象注入接口类接口实现类依赖配置依赖注入简介Hyperf 从入门到精通第三讲,讲述依赖注入定义及各种使用使用方式和注意事项,包括三种注入类型简单对象注入、抽象对象注入和工厂对象注入,和两种注入方式,构造函数注入和 @Inject 注解注入,以及注解和依赖注入容器的配合及基本原理。简单对象构造函数注入简单对象@Inject 注解注入抽象对象注入接口类接口实现类依赖配置依赖注入...原创 2021-01-14 14:22:43 · 586 阅读 · 0 评论 -
Hyperf从入门到精通(4)
Hyperf从入门到精通(4)简介注解自定义注解注解应用对象注解参数传递利用注解收集器,收集注解数据简介Hyperf 从入门到精通第四讲,本节将从代码的角度来讲述注解的实现原理及流程,包括 Hyperf 的启动流程,注解是如何被扫描的,注解元数据是如何被收集及利用的,以及如何定义一个自定义注解并获取注解的元数据的案例演示。注解自定义注解注意注解类的 @Annotation 和 @Target 注解为全局注解,无需 use其中 @Target 有如下参数:METHOD 注解允许定义在类方法上原创 2021-01-15 15:13:09 · 1280 阅读 · 0 评论 -
Hyperf从入门到精通(5)
Hyperf从入门到精通(5)简介AOP面向切面编程AOP中的概念AOP通知类型切面类接口接口实现类依赖关系调用简介Hyperf 从入门到精通第五讲,本节将介绍 AOP 的概念,解释 AOP 是什么,能做什么,以及在 Hyperf 里的 AOP 实现原理及使用的注意事项,同时也通过代码实战来进行来自定义一个 Aspect 切入一个类和切入一个注解,并进行无侵入日志处理和对原方法的返回值进行重写。AOP面向切面编程在软件业,AOP为Aspect Oriented Programming的缩写,意为:面原创 2021-01-18 11:27:30 · 1397 阅读 · 0 评论 -
Hyperf从入门到精通(6)
Hyperf从入门到精通(6)简介RPC概念原理作用服务提供者服务接口接口实现类配置服务消费者服务接口配置调用Consul注册中心启动consul生成consul配置文件简介本节将讲述在 Hyperf 里如何搭建一个 JSONRPC 协议的服务提供者和服务消费者,包括直接指定对端节点信息消费服务,和通过将服务提供者注册到 Consul 并由服务消费者从 Consul 拉取健康的服务节点信息完成 RPC 请求。RPC概念RPC(Remote Procedure Call)—远程过程调用,它是一种通过原创 2021-01-20 10:50:42 · 623 阅读 · 0 评论 -
Hyperf从入门到精通(7)
Hyperf从入门到精通(7)简介概念使用事件管理器定义事件定义监听器触发事件测试简介本节讲述 Hyperf 里的一个重要的机制,同时也是业务解耦的利器–事件机制,演示了事件机制是如何使用的,包括创建事件、触发事件、监听事件等,同时也演示了监听器在不同场景下的不同的使用模式。概念事件模式是一种经过了充分测试的可靠机制,是一种非常适用于解耦的机制,分别存在以下 3 种角色:事件(Event) 是传递于应用代码与 监听器(Listener) 之间的通讯对象监听器(Listener) 是用于监听 事原创 2021-01-22 11:09:02 · 496 阅读 · 1 评论 -
Hyperf从入门到精通(8)
Hyperf从入门到精通(8)简介协程创建通过Coroutine的create方法创建通过co函数创建通过go函数创建WaitGroup特性简介Channel管道Parallel 特性简介parallel函数简介本节将讲述协程的多种创建方式,以及 Channel 的使用及调度流程,以及通过 WaitGroup 特性和 Parallel 特性通过子协程并行的发起多个请求实现并行请求的案例。协程创建通过Coroutine的create方法创建通过co函数创建通过go函数创建WaitGrou原创 2021-01-22 11:27:29 · 1012 阅读 · 2 评论 -
Hyperf从入门到精通(9)
Hyperf从入门到精通(9)简介ConfigInterface 对象获取配置@Value 注解获取配置config() 全局函数获取配置简介本节将讲述 Hyperf 里配置的使用方式,包括注入 Hyperf\Contract\ConfigInterface 对象获取配置,通过 @Value 注解获取配置,通过 config() 全局函数获取配置 3 中形式,以及讲述了环境变量的使用及与配置文件的配合方式。ConfigInterface 对象获取配置@Value 注解获取配置config(原创 2021-01-22 11:47:58 · 450 阅读 · 0 评论 -
Hyperf从入门到精通(10)
Hyperf从入门到精通(10)简介演示利用协程上下文解决简介本节课程将通过代码实践来了解在Hyperf常驻内存环境中所有由 DI 管理的对象的生命周期,并演示了错误的传值方式以及正确的通过协程上下文传值的方式。演示第一次请求:http://127.0.0.1:9501/context/get 结果:10 正确第二次请求:http://127.0.0.1:9501/context/set?id=20 结果:20 正确第三次请求:http://127.0.0.1:9501/context原创 2021-08-09 12:58:17 · 555 阅读 · 0 评论