PHP+Swoole并发编程的魅力
PHP语言是一个短生命周期的Web编程语言,很多PHPer已经形成了fpm下编程的思维定势。实际上在Swoole出现之后,这种串行化编程的模式早已被打破。使用Swoole完全可以轻易实现更灵活的并发编程。
场景介绍假设我们要做一个石头剪刀布的Web游戏,3个玩家同时提交竞猜后显示胜者。...[2019/11/12]
Php—使用phpMyAdmin报错
1、Warning in ./librarie config/FormDisplay.php#661 "continue" targeting switch is equivalent to "break". Did you mean to use "continu...[2019/11/12]
其实你并不懂如何定义一个 PHP 函数
1 <?php
2 function divide($dividend, $divisor){
3 return $dividend / $divisor;
4 }
5 echo divide(12, 4);
6 echo divide(''sa'', ''sd'');
...[2019/11/12]
一步步教你编写不可维护的 PHP 代码一步步教你编写不可维护的 PHP 代码
随着失业率越来越高,很多人意识到保全自己的工作是多么的重要。那么,什么是保住自己工作,并让自己无可替代的好方法呢?一个很简单的事实是只要你的代码没有人能够维护,那么你就成功保住了工作。编写不可维护的代码是一个特殊的技能,但奇怪的是,似乎对某些开发者来说是很自然的。不过对于剩下的开发者来说,这里有一...[2019/11/12]
在Laravel中使用MongoDB的方法示例
MongoDB实用场景
产品用户访问日志,点击埋点统计信息
业务系统环境参数配置信息
业务系统运行时日志,如laravel.log,nginx.log
使用Homebrew在macoOS安装MongoDB PHP Driver
在macOS中,MongoD...[2019/11/12]
Yii框架模拟组件调用注入示例Yii框架模拟组件调用注入示例
本文实例讲述了Yii框架模拟组件调用注入。分享给大家供大家参考,具体如下:
yii 中组件只有在被调用的时候才会被实例化,且在当前请求中之后调用该组件只会使用上一次实例化的实例,不会重新生成该实例。
''components'' => array(
''组件调用名''...[2019/11/12]
Yii框架布局文件的动态切换操作示例
本文实例讲述了Yii框架布局文件的动态切换操作。分享给大家供大家参考,具体如下:
如果你看了底层Controller的源码和Module(模块)的源码,那么你就能很熟练的婉转布局切换了。
1、在控制器中切换当前布局和在方法中动态切换布局
<?php
namesp...[2019/11/12]
php接口隔离原则实例分析
本文实例讲述了php接口隔离原则。分享给大家供大家参考,具体如下:
使用多个专门的接口比使用单一的总接口要好。
一个类对另外一个类的依赖性应当是建立在最小的接口上的。
一个接口代表一个角色,不应当将不同的角色都交给一个接口。没有关系的接口合并在一起,形成一个臃肿的大接口,这是对角色和接...[2019/11/12]
Yii框架自定义数据库操作组件示例
本文实例讲述了Yii框架自定义数据库操作组件。分享给大家供大家参考,具体如下:
Yii 的数据库操作对象提供的方法确实很方便。 但是有的时候我们已经习惯了我们以前编写php的数据库操作语法,没有那么多时间去仔细看每个Yii提供的数据库操作语法,怎么办呢? 那就是一边学习,一边二次封装自己习惯的...[2019/11/12]
PHP创建对象的6种方式
创建对象实例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33...[2019/11/11]
[PHP] 新版本PHP7.4与新版本MySQL8认证问题
mysql8的默认密码加密方式是caching_sha2_pa word,PHP7.4连接mysql的加密方式也为caching_sha2_pa word,这个地方要注意。
当为了兼容旧版的客户端不只是PHP,还有在主从复制的时候也会有问题,mysql8的认证方式改回了mysql_n...[2019/11/11]
PHP中16个高危函数
php中内置了许许多多的函数,在它们的帮助下可以使我们更加快速的进行开发和维护,但是这个函数中依然有许多的函数伴有高风险的,比如说一下的16个函数不到万不得已不尽量不要使用,因为许多“高手”可以通过这些函数抓取你的漏洞。
1、pa thru()
...[2019/11/11]
PHP 模板引擎
PHP模板引擎的由来
● 为了解决当时混合开发WEB应用出现的一系列问题:代码难维护,代码不可重用,程序员要求知识广等问题
● 实现后端与前端不完全分离,开发与美工可以分工合作,提高效率
PHP模板引擎带来的问题
● 由于是不完全分离,导致分工中还有部分耦合地方
...[2019/11/11]
PHP中接口与抽象类的异同点有哪些PHP中接口与抽象类的异同点有哪些
接口与抽象类的相同点:
1、抽象类和接口都有抽象方法
2、抽象类和接口不能创建实例对象
3、抽象类和接口使用意义相同(定义一种规范)
接口与抽象类的不同点:
1、接口中的方法必须全要是抽象方法(不能用不抽象的方法),所以在接口的所有方法中不使用abstract,直接使用分号结束...[2019/11/11]
关于PHP中依赖注入的详细介绍
依赖注入原理:
依赖注入是一种允许我们从硬编码的依赖中解耦出来,从而在运行时或者编译时能够修改的软件设计模式。简而言之就是可以让我们在类的方法中更加方便的调用与之关联的类。
实例讲解:
假设有一个这样的类:
1
2
3
4
5
6
7
...[2019/11/11]
PHP中Redis扩展无法加载问题PHP中Redis扩展无法加载问题
问题:
在重启php-fpm的过程中,发生了如下的错误,redis.so无法载入
1
2
3
4
[root@brand009 modules]# /usr bin/php-fpm
/usr bin/php-fpm: /usr/lib64/lib l.so.1...[2019/11/11]
PHP提高SESSION响应速度的方法有哪些PHP提高SESSION响应速度的方法有哪些
1、设置多级目录存储SESSION
默认se ion的存储目录是1级目录,如果用户量比较大,se ion文件数量就比较大,我们可以设置目录数为2,使用2级目录可以提交查找和存取速度。不过这种方式对速度的提升一般不是很明显,可以通过修改php.ini,进而修改se ion存储目录数。
...[2019/11/11]
PHP中Session ID的实现原理分析PHP中Session ID的实现原理分析
e ion 的工作机制:
为每个访问者创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在 cookie 中,亦或通过 URL 进行传导。
PHPSESSIONID的生产算法原理:
1、hash_func = md5 / sha1 #可由php.ini配...[2019/11/11]
PHP数组具有的特性有哪些
PHP 的数组是一种非常强大灵活的数据类型。以下是PHP数组具有的一些特性:
1、可以使用数字或字符串作为数组键值
1
$arr = [1 => ''ok'', ''one'' => ''hello''];
2、可按顺序读取数组
1
...[2019/11/11]
基于swoole实现多人聊天室
核心的swoole代码
基本的cs(client-sercer)结构不变,这里利用的是redis的哈希和set来储存和分组;从而达到了分组,统计,定时推送等功能;最后利用onclose事件来剔除断开的连接,全部代码如下:(没做前端,就不展示了)
核心的swoole ws.php
...[2019/11/11]
PHP使用递归按层级查找数据
今天主要介绍一下使用递归来按层级查找数据。原理挺简单的,主要是通过父级id一级一级的循环查找子级,使用PHP循环代码也很容易实现,不过如果层级越多,PHP重复代码也越多,这时可以使用递归来实现这功能。
1、首先查出要使用的数据组成一个数组(避免递归里查询数据库,之后根据...[2019/11/11]
简单的PHP上传图片实例
分享一个简单的PHP上传图片实例,本实例主要介绍了上传图片的一些限制判断和上传图片的方法。
首先我们在form表单加上上传附件#file,上传按钮#imgbut,记得给form 表单加上multipart/form-data,否则上传不了图片。
1 <form encty...[2019/11/11]
ThinkPHP v5.1.x POP 链分析
环境:MacOS 10.13 MAMAP Prophp 7.0.33 + xdebugVisual Studio Code前言我所理解的 POP Chain:利用魔术方法并巧妙构造特殊属性调用一系列函数或类方法以执行某种敏感操作的调用堆栈反序列化常用魔法函数前言我所理解的 POP Cha...[2019/11/11]
PHP Laravel 队列技巧:Fail、Retry 或者 Delay
当创建队列jobs、监听器或订阅服务器以推送到队列中时,您可能会开始认为,一旦分派,队列工作器决定如何处理您的逻辑就完全由您自己决定了。
嗯……并不是说你不能从作业内部与队列工作器交互,但是通常情况下,哪怕你做了,也是没必要的。
这个神奇的骚操作的出现是因...[2019/11/11]
PHP Laravel-包含你自己的帮助函数
你可能想创建一个在应用的任何地方都可以访问的函数,这个教程将帮你实现 ??
很多教程都会说,你在 composer.json 这个文件中通过添加一个自动加载的文件,就可以实现这个需求。但我认为这不是一个好的方式,当你在 helpers.php 文件中添加了更多的函数时,可读性将变得很差...[2019/11/11]
PHP 面试官问:你说说Redis的几个过期策略?
在使用redis时,一般会设置一个过期时间,当然也有不设置过期时间的,也就是永久不过期。当设置了过期时间,redis是如何判断是否过期,以及根据什么策略来进行删除的。
设置过期时间 expire key time(以秒为单位) 这是最常用的方式setex(String key, int...[2019/11/11]
Linux 下的这些高效指令,是你快速学习的神器
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络...[2019/11/11]
PHP-PSR 现代PHPer的开发规范
PSR是PHP Standards Recommendation的简称,意为PHP推荐标准。要想了解PSR,首先得知道制定这一标准的人/组织是谁————PHP-FIG。
PHP-FIG
PHP-FIG全称为PHP Framework I...[2019/11/11]
PHP多进程简单实例小结
本文实例讲述了PHP多进程。分享给大家供大家参考,具体如下:
PHP创建多进程需要使用到pcntl模块 在编译时加上--enable-pcntl打开进程控制支持,不是Unix类系统不支持此模块
php官网介绍http: php.net/manual/zh/book.pcntl.php,创建...[2019/11/11]
PHP使用递归按层级查找数据的方法
今天主要介绍一下使用递归来按层级查找数据。
原理挺简单的,主要是通过父级id一级一级的循环查找子级,使用PHP循环代码也很容易实现,不过如果层级越多,PHP重复代码也越多,这时可以使用递归来实现这功能。
1、首先查出要使用的数据组成一个数组(避免递归里查询数据库,之后根据这个数组组成自己需...[2019/11/11]
php中让数组顺序随机化,打乱顺序等
php中有很多排序的函数,sort,rsort,ksort,krsort,asort,arsort,natcasesort,这些函数用来对数组的键或值进行这样,或那样的排序。
可以终究有时候还需要一些函数来随机获取数组的元素。
array_rand()函数
随机获取数组中的一个函数...[2019/11/8]
系统的讲解 - PHP 浮点数高精度运算 - it-world
记录下,工作中遇到的坑 ...关于 PHP 浮点数运算,特别是金融行业、电子商务订单管理、数据报表等相关业务,利用浮点数进行加减乘除时,稍不留神运算结果就会出现偏差,轻则损失几十万,重则会有信誉损失,甚至吃上官司,我们一定要引起高度重视!浮点数运算的“锅”&nbs...[2019/11/8]
php session的理解【转】
php se ion的理解【转】
1、什么是se ion?
Se ion的中文译名叫做“会话”,其本来的含义是指有始有终的一系列动作/消息,比如打电话时从拿起电话拨号到挂断电话这中间的一系列过程可以称之为一个se ion。目前社会上对se ion的理解非常混乱:有时候我们可以看到这样的...[2019/11/8]
使用过Redis,我竟然还不知道Rdb - it-world
使用过Redis,那就先说说使用过那些场景吧字符串缓存 举例
$redis->set();
$redis->get();
$redis->hset();
$redis->hget();
队列 举例
$redis->rpush()...[2019/11/8]
系统的讲解 - PHP 缓存技术 - it-world
概述缓存已经成了项目中是必不可少的一部分,它是提高性能最好的方式,例如减少网络I/O、减少磁盘I/O 等,使项目加载速度变的更快。缓存可以是CPU缓存、内存缓存、硬盘缓存,不同的缓存查询速度也不一样(CPU缓存 优于 内存缓存 优于 硬盘缓存)。接下来,给大家逐一进行介绍。浏览器缓存浏览...[2019/11/8]
51book机票接口对接,吐血整理(含PHP封装代码)
前言 最近在对接51book的机票接口,遇到了挺多坑,所以整理一份作为记录
机票有两个不同的接口,一个是机票,另一个是保险
一、申请
要接51book的机票,首先是要申请账号,这时候应该是有客户经理跟进,然后具体事宜都会告诉你。
拿到账号之后,客户经理会把你的账号拉入测试组,不然测...[2019/11/8]
PHP严重致命错误处理:php Fatal error: Cannot redeclare class or function【转】
这篇文章主要介绍了PHP严重致命错误处理:php Fatal error: Cannot redeclare cla or function,需要的朋友可以参考下
1、错误类型:PHP致命错误
Error type: PHP Fatal error
Fatal error: Canno...[2019/11/8]
微信扫描带参数二维码事件微信扫描带参数二维码事件
用户扫描带场景值二维码时,可能推送以下两种事件:如果用户还未关注公众号,则用户可以关注公众号,关注后微信会将带场景值关注事件推送给开发者。如果用户已经关注公众号,则微信会将带场景值扫描事件推送给开发者。1. 用户未关注时,进行关注后的事件推送推送XML数据包示例:<xml>&...[2019/11/8]
PHP如何创建文件夹(mkdir的用法,mkdirs的语法)【转】
(PHPmkdir如何创建多级目录)
?? 在开始之前,我先说明一下,可能许多朋友与我一样认为只要给一个路径,mkdir就可以创建文件夹,其它不是那样,单个的MKDIR只能创建一级目录,对于多级的就不行了,那如何用mkdir来创建呢?先我抄一段手册上的有关mkdir的描述,如下:
说...[2019/11/8]
[Linux] 纯净ubuntu快速搭建宝塔面板
宝塔官方建议是纯净的系统,我使用docker运行一个ubuntu容器,模拟一个纯净的系统,这样也不会影响到我的其他服务。
docker run --name baota -id -p 8888:8888 ubuntu docker exec -it baota bashapt-get...[2019/11/8]
Swoole 的微信扫码登录
今天来一个大家都会使用的实战功能 。学习就是要折腾,但折腾要去提炼
微信应用的便捷,扫码登录方式越来越被现在的应用所使用。它因为不用去记住密码,只要有微信号即可方便快捷登录。微信的开放平台原生就有支持扫码登录的功能,不过大部分人还是在用公众平台,所以扫码登录只能...[2019/11/7]
PHP 在 Laravel 中动态隐藏 API 字段
我最近在 Laravel Brasil 社区看到一个问题,结果比看起来更有趣。想象一下你有一个 UsersResource 用下面的实现:
1 <?php
2 namespace App\Http\Resources;
3 use Illuminate\Http\Reso...[2019/11/7]
Swoole 整合成一个小框架 - it-world
效果
命令如下: php index.php 可以查看到上图 php index.php start 开启服务(Debug模式) php index.php start -d 开...[2019/11/7]
PHP Laravel 6.2 中用于用户登录的新密码确认流程
Laravel 发布了 v6.2 版本,它添加了一个新的密码确认功能,该功能使你可以要求已登录的用户重新输入密码,然后才能访问路由。
在你执行敏感操作的时候,这个功能就类似GitHub确认对话框。在 Laravel 中你可以轻松的设置它,所以让我们来试用一下新功能,以便你可以更好的了解...[2019/11/7]
PHP Laravel 中使用简单的方法跟踪用户是否在线
今天,我的任务是,在 Laravel 应用程序用户个人资料页面上,用户名旁边添加一个绿点,表示他们是否在线。我首先想到的是,我们将需要启动一个 node.js 服务器并跟踪每个用户的活动套接字连接。然后用当前登录的用户套接字,我们可以实时更新在线状态!唯一的问题是,这是我们目前的要求...[2019/11/7]
MySQL 支持 emoji 图标存储
在MySLQ中 UPDATA 和 INSERT 数据的时候,如果数据上面带有emoji图标,例如:?、?、? 很容易更新或者插入不成功,导致报错。
1
2
Error: ER_TRUNCATED_WRONG_VALUE_FOR_FIEL...[2019/11/7]
PHP下载远程图片到本地的几种方法总结(tp5.1)
1.CURL
2.使用file_get_contents
3.使用fopen
参考链接:https: www.jb51.net...[2019/11/7]
PHP laravel+thrift+swoole打造微服务框架
Laravel作为最受欢迎的php web框架一直广受广大互联网公司的喜爱。
笔者也参与过一些由laravel开发的项目。虽然laravel的性能广受诟病但是业界也有一些比较好的解决方案,比如堆机器,比如使用swoole进行加速。
一个项目立项到开发上线,随着时间和需求的不断激增,会...[2019/11/7]
go-micro+php+consul简单的微服实现
首先我们用go-micro构建一个服务。(关于go-micro的使用可以参照官方实例或者文档)
新建一个微服务
micro new --type "srv" user-srv
定义我们的服务,这里定义两个rpc服务,Register和User...[2019/11/7]
Swoole MySQL 连接池的实现 - it-world
开始今天的文章,这篇文章实现了 Swoole MySQL 连接池,代码是在《Swoole RPC 的实现》文章的基础上进行开发的。先回顾上篇文章的内容: 实现了 HTTP / TCP 请求 实现了 同步 / 异步 请...[2019/11/7]