摘要:PHP与Redis可以通过socket进行通信,前提是PHP需要实现Redis的协议 RESP协议描述: + 字符串 \r\n : 表示一个正确的状态信息,具体信息是'+’后面的字符(Simple Strings) 错误前缀 错误信息 \r\n : 表示一个错误信息,具体信息是当前行'-'后面的字符
阅读全文
摘要:Yii2.0中的一个思想就是组件化的思想,所以、大多数的类都直接或间接的继承自yii\base\Component,而组件的三大功能:属性、事件、行为。 行为的目的是为了方便的扩展一个类的功能,而不需要直接去修改这个类,同时行为中也附带了事件的实现。 1、整体的结构 Controller和模型Act
阅读全文
摘要:1、先看PHP观察者模式的实现: 想要使用事件、必须实现事件的基类、统一的addObserver和trigger方法 定义统一接口、所有的观察者都要实现此接口 这种实现方式的好处是: 直接addObserver就好、事件完成之后直接触发就行了、因为观察者实现了统一的接口 不好的地方在于: 每个观察者
阅读全文
摘要:大部分面向对象编程语言中,父类是不允许调用子类的方法的,但是PHP中可以 1、父类调用子类方法示例 2、弊端 尽量避免这么写,这样的设计非常不好,如果需要写这样的代码,那么一定有其他的设计模式可以取代它 3、好的设计方法 首先发现父类调用子类这种方式是在Yii2.0中的save方法,这个方法位于\y
阅读全文
摘要:之前的文章我们根据源码的分析,弄清了 "Yii如何处理一次请求" ,以及 "根据解析的路由如何调用控制器中的action" ,那接下来好奇的可能就是,我在控制器action中执行了 ,那render这个方法是如何完成渲染视图文件的工作的?我们继续从源码入手。 1、找到视图文件 先看我们在contro
阅读全文
摘要:"之前的文章" 弄清了一次请求的开始到结束。主要讲了Yii Applicaton实例的创建、初始化,UrlManager如何返回Yii中的路由信息,到runAction,最后将Response发送给客户端。这其中略过了 到底是 如何找到以及调用 对应的控制器中的方法的,下面继续从源码入手。 1、继承
阅读全文
摘要:Yii2.0框架源码阅读,从请求发起,到结束的运行步骤 其实最初阅读是从 这个类开始看起,不断的寻找这个类中方法的调用者,最终回到了 ,那就从头开始看。 1、Nginx nginx作为web服务器,时刻监听着80端口,等待接收用户请求,并转发给php进行处理,Yii2.0框架使用了统一的入口脚本:
阅读全文
摘要:在搭建本地环境的时候,需要用到多个设备,有服务器、打印机连接接设备等。因为DHCP动态分配IP,所以每次重连都会发生IP地址的变更。 解决办法就是将每个设备的本机IP上传到统一的地方保存。因为使用REMOTE_ADDR和HTTP_X_FORWARDED_FOR等方法获取到的有可能是客户端使用的代理服
阅读全文
摘要:一、功能 脑袋中冒出一个想法时,命令行(Terminal)中输入一条命令快速保存到Evernote. 注:这里适用于保存简短的内容 不喜欢听絮叨的,直接文末找Github地址吧。 二、想法来源 一直使用印象笔记来整理、记录、收集知识想法,但随着笔记数目的增加,打开Evernote 找到笔记本 找到对
阅读全文
摘要:基于PHP的GD图形库,自己生成一张图片。仅限初识GD库,实例学习。 一、需求 网站的布局用到了类似慕课网课程列表的风格,每一个课程是一个banner图,图下面是标题加简介。因为课程的数量较大没有为所有的课程设计专门的banner,所以需要按照一定的规则,来自己生成图片(本打算用div布局来解决,但
阅读全文
摘要:php爬取微信文章内容 在做官网升级的时遇到新的需求,需要将公司公众号文章显示在官网的文章模块下。但存在的问题是:微信文章的链接会失效,并且需要对文章部分内容做修改,同时要减少微信运营人员的工作量,避免重新上传素材编辑排版等,所以决定根据链接爬取文章的富文本内容。 实现的方式是基于http://we
阅读全文
摘要:解决微信文章图片防盗链 调用示例: `` 其实就是模拟来源站点。
阅读全文
摘要:配置性能测试工具xhprof 1.下载源文件 "xhprof 0.9.3.tgz" 可以使用 2.编译安装 3.安装之后扩展所在的目录为: 4.在 中添加扩展 配置完成后phpinfo查看扩展是否安装成功 5.使用:在待测试代码的起始位置添加 在结束位置添加: 6.运行代码得到run_id 7.将x
阅读全文
摘要:一、需求 1. 使用PHP控制连接打印机 2. 现场实时连续打印动态数据 二、配置 1. php运行环境正确安装(Apache|Nginx + PHP) 2. 下载与php版本对应的 "php_printer.dll扩展" 3. 扩展文件添加到ext目录 4. 编辑php.ini 添加 三、使用 1
阅读全文