php
MClink
最不像程序员的程序员
展开
-
手把手教你使用PHP多进程开发
我们都知道活太多一个人干不完,就会找多几个人去帮忙,大家平分一下工作量,事情也是可以做的快一点,但是也是有缺点,就是每个人可能都要做一些重复的事情,比如说都要看文档,理解需求,才能去做,如果是一个人,虽然做的慢一些,但是占用的资源也相对比较少。像多进程的使用,也是需要权衡的。1.使用多进程的一些场景 重复且耗时的一些操作,例如 发邮件,处理文件,或者是某些批量处理独立个体的事情。例如博主本次用到的场景是批量同步实体信息的操作,每个账户的实体是独立的,量级比较大,且处理逻辑有较多.原创 2020-07-19 20:54:57 · 904 阅读 · 0 评论 -
手把手教你在 laravel 中使用 protobuf
好久之前做的业务了,网上涉及到 laravel 使用 protobuf 的文章少的可怜,自己看了很多相关的文章,总结出来的用法,应该会有不少人需要一、protobuf 简单介绍Protobuf 是 Google 公司内部的混合语言数据标准,是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。二、在 laravel 中封装使用 protobufPHP.原创 2020-06-14 22:30:49 · 1672 阅读 · 2 评论 -
算法基础(二分、选排、快排) -- PHP详解篇
本篇文章你能学到什么:1.二分查找法的原理及 PHP 实现2.选择排序的原理及 PHP 实现3.快速排序的原理及 PHP 实现4.三种算法的时间复杂度分析及比较5.剖析 大 O 表示法前言:聊聊为什么要学算法,我相信大多数人工作是很少用的到算法的,如果我问你为什么要学算法,普遍的回答一般说是为了面试,没错,很现实,但是其实算法不但但只是为了面试过关,同时也是可以增强思维...原创 2020-02-29 18:22:24 · 709 阅读 · 0 评论 -
apidoc使用教程-很好用的一款读取注释生成文档工具
一.apidoc说明1.如何安装前提:确保已安装node.js 使用npm进行apidoc安装 node.js下载npm install apidoc -g2.如何使用1)建立配置文件分两种情况:①已经有package.json文件{ "name": "文档名称", "version": "0.1.0", "description"原创 2019-02-15 11:40:57 · 1857 阅读 · 0 评论 -
如何在项目中集成Doctrine Migrations
1.Doctrine Migrations是什么?团队开发中,每个开发人员对于数据库都修改都必须手动记录,上线时需要人工整理,运维成本极高。而且在多个开发者之间数据结构同步也是很大的问题。Doctrine Migrations组件把数据库变更加入到代码中和代码一起进行版本管理,很好的解决了上述问题。实际作用:版本管理:把数据库变更写入到代码中,来进行版本管理 数据库同步:可以...转载 2019-03-25 15:09:02 · 547 阅读 · 1 评论 -
关于php的自动加载机制的了解认知
前言: 一般来说,自动加载都是和命名空间绑在一起的。我们常说,只要你命名空间和文件目录一致,就可以实现自动加载了,我真的想说,信你个鬼哦,你个糟老头子坏的很。我也不知道在哪里看的这句话,真的以为只要一致就可以自动完成加载。但是当我在项目中集成Migrations的时候,在项目根目录自己建了一个目录,对应的写着命名空间,但是在控制器use的时候,才发觉并没有导入。在经过仔细研究一番后才发...原创 2019-03-25 19:40:22 · 266 阅读 · 0 评论 -
让tp5完美的使用swoole
原本是去年学习swoole课程留下的笔记,想着可能有些人需要,便分享给大家。首先,先使用swoole建个http服务器,这里可以专门写个http.php作为启动服务脚本$http = new swoole_http_server("127.0.0.1", 9501);然后设置参数:$http->set([ 'enable_static_handler' =>...原创 2019-04-06 09:32:27 · 9177 阅读 · 3 评论 -
源码安装PHP+swoole+hiredis,配置swoole环境
这篇文章是一年前安装swoole的记录笔记。在此分享本例使用系统:ubuntu16.04源码安装PHP:1.先去官网下载压缩包2.在指定的目录使用tar命令进行解压3.执行./configure --prefix="安装的路径"4.执行make命令5.尝试make test检验是否安装成功,可以跳过6.执行make install命令7.进入安装目录,可以看出正常的目录结...原创 2019-04-06 09:42:38 · 442 阅读 · 0 评论 -
nginx如何配置多个域名访问
在使用lnmp一键安装包安装环境的时候,配置好了nginx,访问域名时却发现报了404错误,用静态文件缉检查路径是对的,说明php的解析有问题。在网上找到的nginx配置也是无法使用,因此,在此简单总结一下。1.首先找到自己的nginx.conf在哪里whereis nginx.conf 该命令可以用来查找文件位置2.然后进入该目录打开nginx.conf查看一下:简单查看一下几个...原创 2019-06-19 17:50:02 · 16839 阅读 · 0 评论 -
PHP安装拓展标准手法
比如说我要装fileinfo拓展(laravel5.8需要)1.检查所需要的拓展是否有安装:php -i | grep fileinfo--disable-fileinfo 说明这个拓展并没有。2.下载并解压拓展方式有多种,可以单独下载源码拓展,也可以直接下载对应php版本的源码包,这里砸门采用第二种,因为如果以后还想装其他拓展的话,就不用再去下载了。2....原创 2019-06-21 19:03:02 · 536 阅读 · 0 评论 -
Oauth2.0简述及企业实践
之所以写这篇文章,是因为最近做的项目是根据oa2.0协议做的,不是简单使用别人的三方登录,而是做这样的一个授权平台去让别人去用。并且也有朋友问这个东西相关的内容,因此在此总结。1.这是什么协议?OAuth2.0是OAuth协议的延续版本,但不向后兼容OAuth 2.0即完全废止了OAuth1.0。 OAuth 2.0关注客户端开发者的简易性。要么通过组织在资源拥有者和HTTP服务商之...原创 2019-06-27 13:30:31 · 724 阅读 · 0 评论 -
PHP的异常处理是到底什么?
想写这篇文章很久了,由于生活上的一些事情,一直搁置着说实话,有很多学PHP的同学对异常并不了解,甚至觉得不需要这个东西,我觉得只能说明这部分同学还没有比较好的oop思想,如果想学好PHP,对异常的了解是必不可少的一、什么是异常? 异常和错误是不一样的,错误常常是不可避免的,就像是程序的bug,谁又能一次性写出没有bug的程序呢?我们在做事情的时候,常常不能一帆风顺,...原创 2019-08-06 00:06:10 · 225 阅读 · 0 评论 -
类函数与对象函数
读深入PHP面向对象、模式与实践一书时,发现了很多和类、对象有关的内置函数,很多感觉很新奇,业务开发也很少会用到,这里想总结一下,一是为了以后复习方便,二是想分享给大家学习。...原创 2019-08-31 19:20:58 · 761 阅读 · 0 评论 -
PHPExcel超基础教程
1.如何下载PHPExcel插件要求:PHP版本不能太低,否则可能会有适配问题,最好5.3以上去官网下载插件:https://github.com/PHPOffice/PHPExcel.git下载完成后我们只需要里面的Classes目录文件,包含类库以及相关实例将其改名为PHPExcel2.使用PHPExcel一个表格对应一个PHPExcel实例化对象,因此想导出数据就得先创建一个表...原创 2019-01-16 19:34:24 · 1617 阅读 · 0 评论 -
sql注入实践初体验
我们知道都web攻击有着许多种方式,作为一个web开发程序员,不但需要了解常见的攻击方式,还要简单熟悉其攻击方法,楼主不是搞CTF的,但很羡慕那种玩CTF的,这两天玩了一下实验吧的web题,学习了一些关于SQL注入的知识,很多人对SQL注入概念背的很熟悉,但是并没有对其实践过,于是我简单写了两个SQL注入小练习。部署到了楼主的服务器里。这篇文章主要针对和我一样web安全的初级爱好者吧。先了...原创 2018-11-16 12:13:19 · 860 阅读 · 0 评论 -
关于对tp5框架中的命名空间的理解
前几天和朋友聊起了tp框架,突然说起了命名空间,才发觉自己对这个定义并不是很了解,所以特地去查了一些相应的资料,在这里记一下,以防日后忘记。首先先引用一下tp官网中对命名空间的解释:从广义上来说,命名空间是一种封装事物的方法。在很多地方都可以见到这种抽象概念。例如,在操作系统中目录用来将相关文件分组,对于目录中的文件来说,它就扮演了命名空间的角色。具体举个例子,文件foo.txt 可以同时在目录/...原创 2018-03-11 18:42:06 · 5561 阅读 · 1 评论 -
很实用的tp5助手函数汇总
感觉很实用的汇总。在此记录。load_trait:快速导入Traits,PHP5.5以上无需调用 /** * 快速导入Traits PHP5.5以上无需调用 * @param string $class trait库 * @param string $ext 类库后缀 * @return boolean */ load_trait($...转载 2018-03-24 11:39:47 · 8897 阅读 · 0 评论 -
如何理解PHP中的对象引用,浅复制以及深复制
个人博客网站文章地址:http://blog.mclink.xyz/index/article/index/id/36.html很多新手PHPer对oop编程不熟的容易对这些概念忽视,最近在读初级PHP工程师这本书的时候对对象引用这一部分比较模糊,查了一些资料,理解了一下,想在此做一下记录,告诉自己这些基础一定要巩固好。参考文章:https://blog.csdn.net/hel12h...原创 2018-04-08 16:50:34 · 567 阅读 · 0 评论 -
PHP连接到mysql的方法--mysqli和PDO
看书的时候提及了PDO扩展连接数据库,之前一直用用的mysql扩展和mysqli扩展,基本没用PDO,所以查了一些资料,特地记录转载,PHP的MySQL扩展(优缺点)设计开发允许PHP应用与MySQL数据库交互的早期扩展。mysql扩展提供了一个面向过程 的接口;并且是针对MySQL4.1.3或更早版本设计的。因此,这个扩展虽然可以与MySQL4.1.3或更新的数 ;据库服务端 进行交互,但并不支...转载 2018-04-08 20:14:33 · 532 阅读 · 0 评论 -
如何在Windows的PHPstudy中使用redis数据库
本篇文章我设置成转载,原因是我也是看了别人的博客才知道怎么装的,虽然内容是由我自己填写的,但是为了支持原创,我将此文章定为转载。本来是在linux上使用redis的,突然今天想让PHPstudy也能使用它,于是找了些资料安装成功了,因此在此记录安装流程。第一步:在机器上装好redis软件 学过redis的同学知道,redis官方是没有Windows版本的,微软曾经向redis官方提供一个插件想...原创 2018-03-26 15:07:15 · 11270 阅读 · 5 评论 -
如何使用阿里云短信服务构建自己的登录平台
前些时候在学韩大佬的swoole的时候,在登录界面用到了短信验证码登录场景,想到了阿里云的短信服务功能,就使用了一下,效果还可以,基本上2-3s短信就来了,在此记录一下我的使用经历,其实是十分简单的。一,注册阿里云并且进行登录 不少人可能在阿里云买过云服务器啥的,如果你已经有对应的账号了,那么更好,这里也可以使用淘宝的账户进行登录,这是阿里云的首页页面。将鼠标移到产品那里,会弹出一个div,这里...原创 2018-05-18 10:23:06 · 3117 阅读 · 0 评论 -
PHP如何进行接口开发?探索CURL的秘密。
最近这两周忙着写公众号后台开发和小程序,好几天没有更博客了,想了下还是得总结一下,公众号开发我虽然只学了四天,但是已经把基本常用的十几个接口结合TP5都实现了一遍了,感觉并没有什么难度,说白了就是面向接口的开发,照着开发文档提供的接口获取数据,进行整理罢了,主要是对CURL的应用,大多数phper是不会对这个陌生的, 本篇文章我主要说下如何使用CURL来调用图灵机器人的接口和微信公众号开发的接...原创 2018-04-28 13:06:47 · 1079 阅读 · 0 评论 -
ubuntu16.04详解composer安装使用
一、什么是composer? composer是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。说白一点就是不用composer的时候我们可能需要自行去找网址来下载对应的依赖,而且这些依赖大多是在GitHub里面下载的压缩包,外网的网速内地访问会比较慢,而composer则是缓...原创 2018-06-04 11:26:55 · 12186 阅读 · 0 评论 -
关于tp5如何加载外部类的方法
在项目开发时我们总会需要引入第三方类库,在技术群里面经常有初学者问这样的问题,原因是对tp5的文档还不够了解,这里我总结一下,在tp5中,我们是如何引入第三方类库。 上一篇文章我写了关于composer的安装使用,tp5是十分推荐使用composer来进行第三方类库的安装的,如果你安装了composer并使用它进行框架或类库的安装,tp5是会自动加载的,一般composer安装的东西我们是...原创 2018-06-30 11:05:46 · 5748 阅读 · 0 评论 -
详解微信小程序支付流程
花了几天把小程序的支付模块接口写了一下,可能有着公众号开发的一点经验,没有入太多的坑,在此我想记录一下整个流程。首先先把小程序微信支付的图搬过来:相信会来查百度的同学们基本都是对文档的说明不是很理解。我下面大概总结一下整个业务逻辑的过程。微信小程序的商户系统一般是以接口的形式开发的,小程序通过调用与后端约定好的接口进行参数的传递以及数据的接收。在小程序支付这块,还需要跟微信服务器进行交互。过程...原创 2018-07-02 18:22:57 · 43256 阅读 · 6 评论 -
浅谈PHP如何被服务器解析?
PHP是一种服务器脚本语言,也是一种解释型语言。广泛用于中小型网站的建设,没有java那么重,开发又比较快,但是这种脚本语言是如何被服务器解析的呢? 我们都知道PHP是可以嵌入到HTML中的,但是文件的后缀必须得是以.php结尾,如果是.html,PHP的代码片段是会被浏览器直接注释,我这里就不演示了,下面我们看个例子,#test1.php<!DOCTYPE html&...原创 2018-07-16 11:30:28 · 6287 阅读 · 0 评论 -
PHP之spl,用最简单的方式教你使用
一、什么是spl标准库呢?引官方的一段解释:SPL是用于解决典型问题(standard problems)的一组接口与类的集合。对许多phper来说,这个东西估计很多人并不熟悉,在平时的开发初级开发者并用不到,或者用到了也不知道。在重温数据结构的时候,我就在想,PHP有没有已经封装好的函数或方法可以直接使用队列,栈这些东西呢?好奇的我上网查询了一下,这世界上最好的语言确实名不虚传。确实有这...原创 2018-09-18 11:41:40 · 2460 阅读 · 2 评论 -
PHP的 cow 和 zval 容器
什么是cow(copy on write)?这是PHP一种内存优化的手段,可以节省内存空间的浪费,我们可以看看下面的例子。<?php $a = range(0,20); var_dump(memory_get_usage()); $b = $a; var_dump(memory_get_usage()); $b = range(0,20); var_dump(memor...原创 2018-09-25 15:33:27 · 287 阅读 · 0 评论 -
深刻理解PHP面向对象的高级功能
对PHP oop编程的学习与认知。1.使用Per-Class常量。用途:可以在不需要初始化该类的情况下使用:例子:<?php class Man //定义Man类 { const birthday = 19960101; //定义常量变量 } //使用const修饰的变量,我们可以通过::操作符对其进行访问。例如: echo Man::birthday; //使...原创 2018-03-09 14:53:49 · 897 阅读 · 0 评论