![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PHP
文章平均质量分 56
三斤和他的朋友们
一个PHPer的修行之路。
公众号《三斤和他的喵》欢迎大家关注。
展开
-
听说你也想学composer----常见命令手册
上一篇文章我们聊了版本号以及它的一些注意事项,是不是有一丢丢小收获呢?这一篇我们来说说composer的一些常用的命令。全局参数全局参数虽然不是必要的,但是有时候可以帮助我们更好地了解并使用composer:# 查看composer的版本>composer -V# debug模式,输出详细的命令执行过程>composer-vvv#取消交互模式( --no-...原创 2020-03-02 23:54:51 · 372 阅读 · 0 评论 -
听说你也想学composer----入门篇
composer作为依赖管理工具,使用频率还是挺高的。特别是对于我这种比较懒的程序猿,有现成轮子的时候坚决不自己重复造轮子。它和其他编程语言的包管理工具差不多,比如java的maven,js的npm,使用起来也大相径庭。它主要有三部分构成:命令行工具,包仓库,代码库。包仓库就是我们常说的composer源,你也可以在上面发布自己的包,后续的实战我会具体介绍发布流程;代码...原创 2020-02-27 20:51:11 · 233 阅读 · 0 评论 -
laravel常见错误(二):Sorry, your session has expired. Please refresh and try again.
背景知识:最近工作上使用了laravel框架,这个常见错误系列会记录我在学习和使用laravel时遇到的一些问题的场景和解决方法。 laravel文档:传送门错误场景:在web.php中添加了一个路由,试图测试"any",在测试get请求时正常,但是测试post,put,delete却出现了如题的错误。Route::any("any", function(){ return ...原创 2019-03-01 16:23:29 · 11223 阅读 · 0 评论 -
排序算法之时间复杂度为O(N^2)的算法
背景知识:排序算法算是比较基础的算法了,但是在面试过程中偶尔也会被问到,虽然很多语言都内置了排序函数,例如php的sort函数等等,但是还是有必要聊聊排序算法,这篇文章中将介绍时间复杂度为O(N^2)的几个排序算法。 本文基于从小到大排序讲解。 1.冒泡排序:前一个和后一个比较,如果前一个比后一个大则交换位置,继续向下比较。如果前一个比后一个小则不交换位置,继续向下比较。//冒泡...原创 2018-12-01 19:56:54 · 2652 阅读 · 0 评论 -
浅谈设计模式之原型模式
背景知识:我们常说的设计模式其实是一种代码规范,遵从设计模式所编写的代码并不是最高效的,但是是可维护的。 设计模式主要有三类:创建型设计模式,结构型设计模式以及行为型设计模式。 设计模式遵循的几个原则:开闭原则,里氏代换原则,依赖倒转原则,单一职责原则,合成复用原则,接口隔离原则,最小知识原则。本文主要讲述原型模式,原型模式和我们在上一篇中讲的单例模式相似,都是关于对象的。只是单例模式的...原创 2018-11-28 11:19:08 · 172 阅读 · 0 评论 -
浅谈设计模式之单例模式
背景知识:我们常说的设计模式其实是一种代码规范,遵从设计模式所编写的代码并不是最高效的,但是是可维护的。 设计模式主要有三类:创建型设计模式,结构型设计模式以及行为型设计模式。 设计模式遵循的几个原则:开闭原则,里氏代换原则,依赖倒转原则,单一职责原则,合成复用原则,接口隔离原则,最小知识原则。本文主要讲述单例模式,什么是单例模式呢?保证一个类只有一个实例,并提供一个访问实例的全局访问点...原创 2018-11-27 11:16:05 · 136 阅读 · 0 评论 -
yii2的认证体系
背景知识:我们常说的用户相关的安全操作主要就三块:认证,授权,加密。 本文主要介绍基于yii2的user的组件来实现用户的认证。 用户认证的流程:根据用户名查询数据库的记录,然后将用户输入的密码加密之后和数据库的记录进行对比,如果相等则登录成功,登录成功之后,将用户的信息存入到session中。以上就是一个简单的认证流程,当然其中你可以加入记住我等功能。由于yii2框架给我们封装好了以上的...原创 2018-11-24 22:26:07 · 508 阅读 · 0 评论 -
无刷新上传图片的几种方式
背景知识:无刷新上传图片主要还是为了在提交表单之前进行图片的预览。用户体验相对于提交表单跳转显示图片的方式总还是要好一些的。 本文主要介绍三种无刷新上传图片的方式 1.使用iframe子页面的形式达到无刷新上传图片的功能。首先设置一个隐藏的iframe元素并设置其name属性为upload,接着在form表单上设置一个target属性,值为upload,需要和iframe的name属性...原创 2018-11-16 11:42:24 · 1754 阅读 · 1 评论 -
基于Yii2的redis邮件队列
背景知识:传统的邮件发送模式:将用户的邮件发送给第三方邮件服务器(例如网易邮箱等等),邮箱服务器再将邮件发送给指定地址,本地的web服务器则同步等待第三方邮件服务器的发送结果。从上述流程也可以看出,如果网络比较差的话,用户的操作会被阻塞直到第三方服务器返回结果。 基于redis的邮件队列:将用户的邮件存入redis队列中并直接将结果返回给用户告诉用户邮件已经发送,同时服务器端离线监听内存队列...原创 2018-11-08 00:27:11 · 1385 阅读 · 0 评论 -
Yii2集成Elasticsearch(二)
背景知识:全文搜索可以简单地分为两类,一种是顺序扫描,即我们常见的使用 like %keyword% 方式,扫描整张数据表,在每一条记录中查找;另一种就是索引扫描。elasticsearch就是后者。 索引扫描分为两部分:创建索引和搜索索引。创建索引的主要步骤是:对原数据进行分词处理(去掉标点和一些无意义的词等等),将得到的词元交给语言处理组件(例如将复数变为单数,将过去式变为一般式等等),...原创 2018-11-04 13:17:28 · 3187 阅读 · 0 评论 -
Yii2中使用基于redis的缓存
背景知识:缓存顾名思义就是将数据保存起来,下次要使用时直接获取即可。程序中用的最多的就是将数据库的数据进行缓存从而减少查询数据库的次数,减轻服务器压力。 yii2框架默认使用的是文件缓存,本文将介绍redis缓存的使用,因此需要安装yii的redis扩展,传送门1.首先进行配置,使我们的项目以redis作为缓存: [ 'components' => [ ...原创 2018-11-09 22:17:50 · 2695 阅读 · 0 评论 -
Yii2集成Elasticsearch(一)
背景知识:全文搜索可以简单地分为两类,一种是顺序扫描,即我们常见的使用 like %keyword% 方式,扫描整张数据表,在每一条记录中查找;另一种就是索引扫描。elasticsearch就是后者。 索引扫描分为两部分:创建索引和搜索索引。创建索引的主要步骤是:对原数据进行分词处理(去掉标点和一些无意义的词等等),将得到的词元交给语言处理组件(例如将复数变为单数,将过去式变为一般式等等),...原创 2018-10-24 23:16:09 · 3427 阅读 · 0 评论 -
安装PHP的Redis扩展
背景知识:redis是基于内存的数据库,主要的使用场景是作为缓存。 redis是单线程模型1.首先进入redis官网选择相应的客户端,本文是基于PHP的,因此选择PHP客户端:2.在PHP的客户端列表选择phpredis,至于其他的第三方,感兴趣的小伙伴可以自己尝试:3.执行如下命令将项目拉到本地:git clone git@github.com:phpredis/p...原创 2018-10-24 00:43:52 · 285 阅读 · 0 评论 -
PHP开发的注意点(持续更新)
背景知识这一篇博客会持续更新和维护,主要是记录一些平常工作上或者学习过程中遇到的一些注意事项,希望和大家学习与共勉。 1.关于json_encode和json_decode两个函数的注意点:1.json_decode():通常是将一个json字符串转成数组或者对象。例如: $json='{"name":"sanjin"}'; json_decode($json)...原创 2018-11-15 15:40:08 · 389 阅读 · 0 评论 -
Yii2集成支付宝
背景知识:本文主要以电脑网站支付为主讲解支付宝的应用,官方文档 事先准备好官方的PHP例子,下载地址:传送门1.首先在vendor下新建一个alipay目录,将下载好的sdk拖入该目录中:2.在配置文件中配置支付相关信息:<?phpreturn [ 'alipay'=>[ //应用的ID 'app_id'=>"",...原创 2018-10-17 23:45:25 · 1190 阅读 · 0 评论 -
Yii 2.0集成七牛云
背景知识:七牛云就是我们常说的图床。什么是图床?可以简单理解为是一种存储图片资源的服务器。 本文基于Yii2简单介绍七牛云的使用1.首先在七牛云平台创建账户:传送门2.登陆账户之后,点击头部菜单管理控制台,进入之后,点击左侧菜单存储对象:3.点击新建存储空间,填写响应的信息,如下仅做参考:4.创建好应用之后,接着我们要生成密钥:点击右上角的个人面板,再点击密钥管理,...原创 2018-10-17 21:21:24 · 1578 阅读 · 1 评论 -
PHP对接阿里大鱼实现短信的发送
背景知识:手机验证码这个功能几乎哪里都可以看到,那么PHP如何实现手机验证码的发送呢?下面介绍PHP对接阿里大鱼实现短信验证码发送。1.首先登陆阿里云,点击控制台:2.选择短信服务:3.由于阿里云的短信服务,需要签名和模板,因此需要先申请:4.申请好了签名和模板之后,别忘了往账户里充钱哦。5.下载SDK,SDK下载地址,我这边选择PHP的轻量版SDK。下载之后解压...原创 2018-09-13 15:06:54 · 3519 阅读 · 3 评论 -
PHP使用PHPMailer发送邮件
背景知识:邮件的使用场景一般有很多,例如用户注册,消息通知等等,本案例以用户注册发送验证码为场景 PHPMailer是一个PHP相关的邮件类,使用它可以很轻松的发送邮件1.使用composer安装PHPMailer,PHPMailer的github主页:PHPMailer下载。例如可以在桌面创建一个测试目录phpmail,按住shift+鼠标右键,选择在此处打开命令窗口,输入如下命令安装...原创 2018-09-13 13:45:01 · 4502 阅读 · 3 评论 -
MAC下XAMMP的安装
背景知识:xampp是一款多平台的PHP集成环境安装包,其中a表示Apache,m表示Mysql,p表示PHP和Perl。本文将介绍mac平台下xampp的安装,XAMMP多平台下载。1.下载dmg安装包,双击安装。2.安装好之后,输入localhost可运行,则表示安装成功。可在应用程序中找到XAMPP这个文件夹,内部文件结构如下3.接下来配置虚拟主机,首先打开etc目录下的h...原创 2018-09-09 09:47:10 · 3603 阅读 · 0 评论