简介: 门面模式又称之为外观模式,属于结构型的设计模式。 用于为子系统中的一组接口提供一致的调用方案。门面模式定义了一个高层接口,引入门面角色之后,只需要直接与门面角色交互,降低了系统的耦合度。 适用场景: 最经典的Laravel的Facade,当使用一些库的时候,不需要了解底层系统如何实现,只需
简介: 桥接模式又叫桥梁模式,属于结构型模式。目的是将抽象与实现分离,使它们都可以独立的变化,解耦。继承有很多好处,但是会增加耦合,而桥接模式偏向组合和聚合的方式来共享。 适用场景: 不希望或不适用使用多继承的场景。 一个类存在2个或更多的 独立变化维度 , 并且这些维度都需要 独立扩展 优点:
简介: 适配器模式属于结构型设计模式。 将一个类的接口转换成可应用的兼容接口。适配器使原本由于接口不兼容而不能一起工作的那些类可以一起工作。 适配器模式有两种实现方案,一种是继承的方式,一种是组合的方式。 适用场景: 兼容不方便更改的“祖传”代码。 归纳具有相似点的模块,比如Laravel Fil
简介 装饰器模式又叫做装饰者模式,属于结构型的设计模式。 指的是在不改变原类文件和使用继承的情况下动态扩展这个对象的功能,从而修饰源数据。 组成: 抽象构件(Component)角色:定义一个抽象接口以规范准备接收附加责任的对象。 具体构件(ConcreteComponent)角色:实现抽象构件,
简介: 责任链模式又叫做职责链模式,是属于行为型的一种。 责任链模式分为两种: 第一种像工厂流水线,目的就让每一个环节都进行处理。 第二种像层层审批,如果其中一个对象无法处理,调用下一个对象来进行处理,如果一旦能处理,链式就此停止,以此类推,第二种为了程序的健壮性,至少得需要一个兜底的模块,防止穿
简介: 策略模式又叫做政策模式,用于如何组织和调用算法的,是属于行为型模式的一种。 策略模式需要三个角色构成: Context 封装角色:也叫做上下文角色,起承上启下封装作用,屏蔽高层模块对策略、算法的直接访问,封装可能存在的变化。 Strategy 抽象策略角色:通常为接口,指定规则。 Conc
phpt测试文件说明 phpt文件用于PHP的自动化测试,这是PHP用自己来测试自己的测试数据用例文件。 测试脚本通过执行PHP源码根目录下的run-tests.php,读取phpt文件执行测试。 phpt文件包含 TEST,FILE,EXPECT 等多个段落的文件。在各个段落中,TEST、FIL
简介 观察者模式是行为型模式的一种,定义了对象间一对多的关系。当对象的状态发生变化时候,依赖于它的对象会得到通知。 适用场景 类似触发钩子事件,可做消息通知、框架底层监听。 一个对象的改变会导致一个或多个对象发生改变,方便扩展的写法。 优点 方便扩展,降低耦合,统一触发规则。当需要新增或者删除一个
简介: 单例模式是创建型对象的一种,用于如何优雅的创建对象。 让一个类最多产生一个对象。 场景: 只需要一个对象就能解决并且要使用多次的场景,比如框架的数据库连接。 优点: 减少资源消耗,一个对象能完成的事情,就不需要再实例化出来同样的东西。 缺点: 对象生命周期都是页面级的,每次页面被执行时,都
访问控制器时省略了index.php报No input file specified. 解决:public/.htaccess下文件改为(RewriteRule行): <IfModule mod_rewrite.c> Options +FollowSymlinks -Multivi
简介 工厂模式属于创建型模式,可以分为三种:简单工厂、工厂模式、抽象工厂。 通俗讲就是用于如何优雅的创建对象而设计。当开发者不知道建什么对象,或者创建方式过于复杂的时候去使用(比如引入一个大composer项目或大型sdk,有些时候确实不知道需要使用那些对象,此时就需要参考官方文档,通过包里或sd
公司新开发的项目上线了,出于好奇心,打算将网站服务改为swoole测一下性能,正好换了个新电脑,可以从头安装一下Swoole扩展,却发现苹果电脑M1芯片安装起扩展来有很多坑,花了一下午时间才搞好,网络上的解决方案都不全或者很分散,在此整合记录一下。 一、下载 Mac上安装扩展有两种方式,可以用
前言 内存木马,就是在内存中运行的木马病毒,没有代码实体。内存木马有着强隐蔽性,排查困难,杀不死(俗称不死马)的特点。 网络安全行业,有着很强的木桶效应。系统对抗黑帽,胜负取决于安全最薄弱的环节。黑帽对抗白帽,胜负取决于攻击水平和和毁尸灭迹隐蔽的水平。 正文 本文不讨论是由于任意文件上传还是近源攻
本文环境:php版本:5.4.45 (phpstudy),Xdebug 2.4.1(phpstudy文件夹中自带),phpstorm 2021.3 目录PHP配置浏览器配置(插件安装)使用PHPStrom配置使用VSCode配置断点调试 为啥是这么老的版本呢?
本文使用php 进行微信pc 扫码登录,扫码获取用户信息 话不多说直接上代码吧! 怎么使用在代码最下面   <?php class WeChatRcLogin { public $state = ''; public $appid = ''; public $s
本文使用 websocket + gatewayworker 搭的一个简单聊天室,随便写了点样式,大家不要介意哈,主要看流程就好   html代码, <!doctype html> <html lang="en"> <head> <meta ch
本文是使用redis 代替数据库金纬度查询,由于数据库金纬度度让数据库去做运算影响性能所以下面就介绍了用redis 去使用 redis 中提供了 geo类,使用就行了   $redis = new redis(); $redis->connect('127.0.0.1',6379,1);/
介绍 微信云开发是微信团队联合腾讯云推出的专业的小程序开发服务。 开发者可以使用云开发快速开发小程序、小游戏、公众号网页等,并且原生打通微信开放能力。 开发者无需搭建服务器,可免鉴权直接使用平台提供的 API 进行业务开发。 云开发优势 无需搭建服务器,只需使用平台提供的各项能力,即可快速开发业务

推荐文章