PHP
文章平均质量分 70
来斤华子
暂无相关描述
展开
-
Rocky Linux 配置 PHP 环境
安装 PHP # 更新软件包sudo dnf upgrade --refresh -y# 安装 EPEL 源sudo dnf install \ https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm \ https://dl.fedoraproject.org/pub/epel/epel-next-release-latest-9.noarch.rpm原创 2023-07-11 16:26:48 · 1271 阅读 · 0 评论 -
Leetcode 解题记录
本篇概要:1. 两数之和;2. 两数相加;3. 无重复字符的最长子串;4. 寻找两个正序数组的中位数;5. 最长回文子串;6. Z 字形变换;7. 整数反转;9. 回文数;1. 两数之和;给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。示例:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1原创 2021-10-08 16:05:11 · 127 阅读 · 0 评论 -
Swoft 2.x 微服务基础(Consul、RPC 服务发现、限流与熔断器)
本篇概要:1. Swoft 服务注册与发现;1.1 Consul 概况;1.2 在 Consul 注册服务、反注册;1.2.1 注册服务;1.2.2 反注册;1.3 健康检查;1.4 服务发现;1.5 算法获取服务;1.6 封装 client 类、调用 http api;2. RPC 和服务发现;2.1 RPC 服务的基本配置;2.1.1 基本概念;2.1.2 基本配置;2.2 创建 RPC 服...原创 2020-02-20 17:51:57 · 2478 阅读 · 4 评论 -
Swoft 2.x 基础(HTTP、数据库、Redis)
本篇概要:0. 框架安装;0.1 官方 Docker 镜像启动 Swoft;1. Http Server;1.1 控制器;1.2 全局函数;1.3 中间件;*1.4 链式调用;*1.5 JSON 参数转实体对象;2. 数据库;2.1 基本配置;2.2 原生操作、查询构造器;2.3 验证器;2.4 模型的使用;2.5 场景练习(数据验证,主子订单入库,事务控制);3. Redis 相关;3.1 Redis 配置使用;3.2 场景练习(订单过期);3.2.1 异步任务;3.2.2 用户进程;3.2.3 Redi原创 2020-02-14 09:23:25 · 765 阅读 · 0 评论 -
Yii2 基础:延迟加载,数据、片段、页面、HTTP 的缓存,gii 工具
本篇概要:1. 延迟加载;1.1 类的延迟加载;1.2 类的映射表机制;1.3 组件的延迟加载;2. 数据缓存;2.1 增删改查;2.2 有效期设置;2.3 数据缓存依赖关系;6. gii 工具;6.1 简介;6.2 模型生成器的使用及代码实现;6.3 控制器生成器。1. 延迟加载;1.1 类的延迟加载;<?php// 1. 延时加载原理function loader($class...原创 2019-11-16 20:09:34 · 353 阅读 · 0 评论 -
微信公众账号平台开发
本篇概要:1. 接入公众账号 API;2. 消息推送;3. 消息回复;4. 关于 access_token;5. 自定义菜单;6. 群发消息;7. 网页授权;8. 模板消息;9. 生成二维码;10. 微信 JS-SDK。公众账号类型和区别订阅号:主要适用于个人或者组织服务号:政府机构、组织、企业,不适用于个人企业号:大型企业基础接口介绍事件推送(订阅公众账号):微信用户在微信中关...原创 2019-11-12 21:46:52 · 666 阅读 · 0 评论 -
PHP 设计模式之策略模式、数据对象映射模式、观察者模式、原型模式、装饰器模式、迭代器模式、代理模式
相关内容:1. PHP 三种基础设计模式(工厂模式、单例模式、注册器模式)以及适配器模式2. PHP 设计模式之策略模式、数据对象映射模式、观察者模式、原型模式、装饰器模式、迭代器模式、代理模式本篇概要:1. 策略模式;2. 数据对象映射模式;2.1 基础;2.2 复杂案例;3. 观察者模式;4. 原型模式;5. 装饰器模式;6. 迭代器模式;7. 代理模式。1. 策略模式;策略...原创 2019-11-01 16:13:17 · 302 阅读 · 0 评论 -
数据安全解决方案:AES 加密
本篇概要:1. 数据安全介绍;2. 授权码 sign 解析;3. sign 检验。1. 数据安全介绍;加密方式:MD5AES:对称的加密算法(还有 DES,3DES 等)。对称加密算法的底层机制会不一样。AES 有更高的速度和资源使用率,比其它的对称算法要高。RSA:非对称的加密算法,效率稍差,数据量大的时候加密时间较长,一般用于小数据加密加密步骤:header 当中放一些基础的参...原创 2019-10-28 11:14:34 · 899 阅读 · 0 评论 -
编写基于 Redis 邮件异步发送工具
本篇概要:1. 异步发送邮件工具原理;2. 安装 Redis 服务;3. 安装 PHP 的 Redis 扩展;4. 安装 Yii2 的 Redis 插件;1. 异步发送邮件工具原理;现有邮件发送系统的实现:用户点击注册连接邮箱服务器将注册信息发送给邮箱服务器邮箱服务器返回结果到本地 WEB 服务器不可控因素网络问题:如果网络比较慢,连接邮箱服务器的时候,响应比较慢,用户体验差...原创 2019-10-18 15:05:06 · 251 阅读 · 0 评论 -
LVS 负载均衡搭建服务器集群架构
本篇概要:1. LVS 虚拟服务器;2. 安装 ipvsadm;3. NAT 模式;4. DR 模式;5. IP-TUNNELING 模式。1. LVS 虚拟服务器;相关概念:LVS 是 Linux Virtual Server 的简写,意思就是 Linux 虚拟服务器,是一个虚拟的服务器集群系统本项目在 1998 年 5 月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一目...原创 2019-10-15 22:00:09 · 775 阅读 · 0 评论 -
PHP 基础知识
本篇概要:1. 引用变量;2. 常量及数据类型;3. 运算符;4. 流程控制;5. 自定义函数及内部函数 ;6. 正则表达式;7. 文件及目录处理;8. 会话控制技术;9. 面向对象;10. 网络协议;11. 开发环境及配置。1. 引用变量;问题:什么是引用变量?在 PHP 中,用什么符号定义引用变量?PHP 的引用变量的概念及定义方式概念:在 PHP 中引用意味着用不同的名字访问同...原创 2019-08-31 16:32:09 · 190 阅读 · 0 评论 -
Mac 的 PhpStrom 中快捷键 command + S 代码文件无法上传更新至服务器的问题
目前的问题设置好连接远程服务器后,本地修改远程代码后 command + S,IDE 提示 “The file has been modified. Upload?”。还要点击上传按钮,代码才能成功上传到远程服务器。为何不是按 command + S 后自动上传呢?原因Mac 的 PhpStrom 上传代码文件的快捷键不是 command + S,而是 shift +option + Q...原创 2019-09-19 15:42:55 · 698 阅读 · 0 评论 -
Yii2 基础:安装,控制器、视图、数据模型
本篇概要:1. Yii2 的安装启动;1.1 安装;1.2 请求处理流程;1.3 命名空间;2. 控制器;3. 视图;3.1 视图文件的创建、数据传递、数据安全;3.2 布局文件;4. 数据模型(活动记录);4.1 数据模型之单表增删改查;4.2 关联查询;1. Yii2 的安装启动;1.1 安装;方法1 :访问 Yii 官网,进入下载页面,下载 Yii2 的基本应用程序模板的归档文件...原创 2019-09-17 22:06:59 · 285 阅读 · 0 评论 -
Swoole 实现直播登录模块
本篇概要:1. 环境部署准备;2. Swoole 支持 TP5;3. 登录流程介绍;4. 登录实现。1. 环境部署准备;# 创建项目目录cd /data/project/test/swoole/mkdir tp5cd tp5# 附件里的 tp5 代码复制到 tp5 文件夹下# 注意:赛事直播的一些静态文件已经放入到 tp5/public/static 下# 创建 server 目...原创 2019-09-15 17:24:36 · 966 阅读 · 0 评论 -
PHP 匿名函数以及闭包
匿名函数也叫闭包函数(closures),声明方式如下<?php$func = function() {};// 匿名函数因为没有名字,所以需要将其赋值给一个变量返回// 匿名函数也可以声明参数$func = function($param) { echo $param;};$func('Hello world');// 输出 Hello world简单的闭包...原创 2019-09-14 16:57:16 · 199 阅读 · 0 评论 -
Swoole 之进程、内存、协程
本篇概要:1. 进程详解;2. 进程案例解刨;3. 内存 - table 详解;4. 协程。1. 进程详解;什么是进程进程就是正在运行的程序的一个实例比如在某个终端里执行一个 PHP 脚本,这时候就相当于开启了一个进程,会有对应的一个进程 idSwoole 会对进程进行一些管理。参考文档 https://wiki.swoole.com/wiki/page/p-process.html...原创 2019-09-13 21:16:20 · 913 阅读 · 0 评论 -
Swoole 之异步毫秒定时器
常规定时器crontab。但是 crontab 有时候无法满足一些场景,比如需要一些毫秒级、秒级去处理任务的时候。Swoole 常规定时器swoole_timer_tick:没隔一段时间去执行swoole_timer_after:几秒 、几分钟之后去执行参考:https://wiki.swoole.com/wiki/page/p-timer.html实例# 新开一个终端 1:...原创 2019-09-12 20:41:12 · 596 阅读 · 0 评论 -
Swoole 之网络通信引擎(TCP、HTTP、WebSocket)
本篇概要:1. TCP 服务器;2. TCP 客户端;3. UDP 服务;4. HTTP 服务;5. WebSocket 服务基本概述;6. WebSocket 服务案例实现;7. WebSocket 服务优化;8. task 任务使用。1. TCP 服务器;文档:https://wiki.swoole.com/创建文件 tcp.php# 进入项目目录cd /data/projec...原创 2019-09-07 21:44:14 · 1342 阅读 · 0 评论 -
Linux 下编译安装 Sphinx
编译安装 Sphinx安装相关依赖包yum -y install gcc gcc-c++ automake autoconf expat expat-devel mysql-devel下载最新的 Sphinx 正式版源码包cd /usr/local/srcwget -c http://sphinxsearch.com/files/sphinx-2.2.11-release.ta...原创 2019-09-03 17:38:33 · 535 阅读 · 0 评论 -
Swoole 实现直播模块
本篇概要:1. 直播表设计;2. WebSocket 服务器搭建并支持 Http 服务;3. 直播页面搭建;4. 赛事直播在线用户处理 - redis 方案;5. 赛事直播功能逻辑开发。1. 直播表设计;表的设计球队表球员表球员分数表(得分、助攻等)直播赛事表赛事战况表用户聊天室表// 球队表// tinyint unsigned 0~255// 默认设置 '',如果设置...原创 2019-09-26 16:20:03 · 709 阅读 · 0 评论 -
Swoole 实现聊天室模块
本篇概要:1. 聊天室模块发送数据交互处理;2. 聊天室功能。1. 聊天室模块发送数据交互处理;创建 js 文件:public/static/live/js/chart-push.js$(function(){ $('#discuss-box').keydown(function(event){ // 回车事件 if(event.keyCode ...原创 2019-09-29 20:52:16 · 535 阅读 · 0 评论 -
PHP 面向对象编程之封装性
本篇概要:1. 设置私有成员与私有成员的访问;2. 魔术方法 __set();3. 魔术方法 __get();4. 魔术方法 __isset();5. 魔术方法 __unset()。1. 设置私有成员与私有成员的访问;封装的修饰符封装性是面向对象编程中的三大特性之一。封装并不是让成员属性或者成员方法在类的外部不能访问,而是把对象中的成员属性和成员方法加上访问修饰符,使其尽可能隐藏对象的...原创 2019-06-17 23:11:26 · 522 阅读 · 0 评论 -
Kafka 消息队列的使用
本篇概要:1. 消息队列相关概念;2. Kafka 消息队列;3. 安装 Kafka 服务;4. 安装PHP的 Kafka 扩展 rdkafka;5. 编写 Kafka 的生产者方法;6. 编写 Kafka 的异步消费者方法。1. 消息队列相关概念;相关概念:消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削峰等问题。实现高性能,高可用,可伸缩和最终一致性架构。是大...原创 2019-10-09 19:45:29 · 1743 阅读 · 0 评论 -
Yii2 RBAC 权限管理
本篇概要:1. RBAC 权限管理基本概念;2. 配置 RBAC;3. 后台创建用户角色;1. RBAC 权限管理基本概念;相关概念:Role Based Access Control:基于角色的访问控制RBAC 提供了一个简单而强大的集中式访问控制机制关键字:用户:Web 应用中的认证基数角色 Role(角色是权限的集合):整合权限的集合,可以包含用户、也可以包含权限权限 Pe...原创 2019-10-05 22:37:16 · 394 阅读 · 0 评论 -
Yii2 用户认证体系
本篇概要:1. 用户认证体系基本概念及实现;2. 用户认证组件 User 相关属性和方法完成前台的登录和退出;3. 过滤器 AccessControl 控制认证用户;4. 过滤器 VerbFilter 过滤请求方式;5. 分离前后台用户认证;6. 后台使用过滤器验证用户;7. 哈希算法 bcrypt 对密码加密处理。1. 用户认证体系基本概念及实现;相关概念:认证: 鉴定用户身份的过程。它...原创 2019-10-05 22:36:27 · 594 阅读 · 0 评论 -
Yii2 Assets 前端资源发布的使用
本篇概要:1. 如何使用 Assets 资源组件;2. 使用 Asset 资源包管理页面资源;3. 前端资源的按需加载;4. 使用 NavBar 和 Nav 渲染页面导肮;1. 如何使用 Assets 资源组件;相关概念:资源:CSS 文件、JavaScript 文件、图片或者视频文件资源包:管理资源的一个类,当渲染页面时,可以将所需的资源加入资源包,在页面当中注册该资源包即可渲染对应的...原创 2019-10-05 22:34:25 · 962 阅读 · 0 评论 -
Swoole 系统监控和性能优化
本篇概要:1. 服务监控;2. 多个请求过滤;3. 服务平滑重启;4. 负载均衡概述;5. Nginx 静态文件支持、转发到 Swoole 服务器;6. 负载均衡。1. 服务监控;创建监控文件 server/script/monitor/server.php<?php/** * 监控服务 ws http 8811 */class Server{ const P...原创 2019-09-30 15:56:22 · 1200 阅读 · 0 评论 -
高并发大流量解决方案
本篇概要:1. 高并发大流量解决方案;8. 动态语言的并发处理;9. 数据库缓存层的优化;10. MySQL 数据层的优化;11. Web 服务器的负载均衡、请求分发。1. 高并发大流量解决方案;问题:PHP 如何解决网站大流量与高并发的问题?高并发架构相关概念我们所说的高并发是什么在互联网时代,所讲的并发、高并发、通常是指并发访问。简单来说,就是在某一个时间点,有多少个访问同...原创 2019-08-29 08:59:42 · 2295 阅读 · 0 评论 -
常见算法
本篇概要:1. 算法的概念;2. 时间复杂度和空间复杂度;3. 常见排序算法:4. 常见查找算法。1. 算法的概念;解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。一个问题可以有多种算法,每种算法都有不同的效率。比如:1 + 2 + 3 + 4 + … + n 的值是多少,可以一个数字一个数字加,也可以用公式 (1 + n) * n / 2一个...原创 2019-08-26 16:55:52 · 499 阅读 · 1 评论 -
数据库抽象层 PDO
本篇概要:1. PDO 概览;2. 创建 PDO 对象与连接相关设置;3. 使用 PDO 对象;4. PDO 预处理;5. PDO 事务处理。1. PDO 概览;PDO(PHP data object)是一个扩展类库,为 PHP 访问数据库定义了轻量级、一致性的接口什么是扩展类库?就是在 PHP 基础上进行了一些扩展、并且是以一个类的形式进行扩展。当然它不是 PHP 实现的,扩展类库一般...原创 2019-06-20 21:13:26 · 277 阅读 · 0 评论 -
PHP 面向对象之常用函数
本篇概要:1. class_exists 与 get_class_methods函数;2. get_class 与 get_object_vars函数;3. get_parent_class 与 is_a函数;4. method_exists 与 property_exists函数。1. class_exists 与 get_class_methods函数;class_exists — 检...原创 2019-06-20 16:59:31 · 327 阅读 · 0 评论 -
PHP 面向对象编程之异常处理
本篇概要:1. 系统自带的异常处理;2. 自定义异常处理;3. 捕捉多个异常处理。1. 系统自带的异常处理;# 说明class Exception{ // 四个成员属性 protected $message = ‘Unknown exception’; // 异常信息 protected $code = 0; // 用户自定...原创 2019-06-19 23:56:41 · 216 阅读 · 0 评论 -
PHP 面向对象编程之抽象类与接口
本篇概要:1. 抽象方法和抽象类;2. 接口技术;3. 多态应用。1. 抽象方法和抽象类;当类中有一个方法,他没有方法体,也就是没有花括号,直接分号结束,象这种方法我们叫抽象方法,必须使用关键字 abstract 定义。举例说明:public abstract function fun();包含这种方法的类必须是抽象类也要使用关键字 abstract 加以声明。(即使用关键字 abstr...原创 2019-06-19 16:15:48 · 203 阅读 · 0 评论 -
PHP 面向对象编程之魔术方法
本篇概要:1. 克隆对象;2. 类中通用的方法 __toString();3. __invoke() 方法的运用;4. __call() 方法的运用;5. 自动加载类;6. 对象串行化。1. 克隆对象;有时可能需要根据一个对象完全克隆出一个一模一样的对象,而且克隆以后,两个对象互不干扰。# 格式$obj = new Class();$objcopy = clone $obj;...原创 2019-06-18 21:40:08 · 234 阅读 · 0 评论 -
PHP 面向对象编程 - 常见的关键字
本篇概要:1. final 关键字;2. static 关键字;3. 单例设计模式;4. const 关键字;5. instanceof 关键字。1. final 关键字;在PHP5中新增加了 final 关键字,它只能用来修饰类和方法。不能使用 final 这个关键字来修饰成员属性。final 的特性:使用 final 关键字标识的类不能被继承使用 final 关键字标识的方法不能...原创 2019-06-18 19:16:07 · 579 阅读 · 0 评论 -
PHP 面向对象编程之继承性
本篇概要:1. 类继承的应用;2. 访问类型的控制;3. 子类中重载父类方法。1. 类继承的应用;PHP 只支持单继承,不允许多重继承。一个子类只能有一个父类,不允许一个类可以继承多个类。但一个类可以被多个类继承。举个例子:有一个家庭,一个人可以有四个儿子,但是每一个儿子只能有一个父亲,当然这是他们共同的父亲可以有多层继承,即一个类可以继承某一个类的子类,如类 B 继承了类 A,类...原创 2019-06-18 14:45:21 · 466 阅读 · 0 评论 -
PHP 面向对象编程入门 - 类与对象
本篇概要:1. 面向对象的概念 ;1.1 类与对象之间的关系,1.2 面对对象程序设计,2. 如何抽象一个类;3. 通过类实例化对象。1. 面向对象的概念 ;OOP(Object-Oriented Programming,面向对象编程),编程的代码简洁、更易于维护、具有更强的可重用性OOP 达到了软件工程的三个目标:重用性、灵活性、扩展性OOP 面向对象编程特点:封装、继承、多态1....原创 2019-06-17 16:10:46 · 630 阅读 · 0 评论 -
PHP 面向对象编程 - 构造方法和析构方法
本篇概要:1. 构造方法;2. 析构方法。1. 构造方法;构造方法是 PHP5 中出现的一个新的特性,在实例化对象的时候自动调用。在实例化的时候可以给类进行一些赋初始值的操作。# 构造方法语法格式[修饰符] function __construct([参数]){ 程序体 }# 构造的方法的名字是固定的# 构造方法也是魔术方法的一种# 在实例化时候传递的参数,会在构造方...原创 2019-06-17 21:36:44 · 958 阅读 · 0 评论 -
Linux 下编译安装 Nginx,以及 Nginx 和 PHP7 协同工作
相关内容:1. Linux 下编译安装 MySQL;2. Linux 下编译安装 PHP7;3. Linux 下编译安装 Nginx,以及 Nginx 和 PHP7 协同工作(本篇);4. Linux 下编译安装 Apache;下载 Nginx 最新的稳定版cd /usr/local/src/wget http://nginx.org/download/nginx-1.16.0....原创 2019-05-31 17:13:22 · 958 阅读 · 0 评论 -
PHP 命名空间、类自动载入、PSR-0 规范基础框架
本篇概要:1. 命名空间;2. 类自动载入;3. PSR-0 规范基础框架。1. 命名空间;最早的时候 PHP 是没有命名空间的,所有的代码是在同一个命名空间之下,这样的话就不能存在相同名称的类和相同名称的函数。但是当我们的工程越来越大的时候,PHP 文件也会越来越多,也可能会产生越来越多的命名冲突。还有一个问题就是我们的代码越来越复杂,如果能有一个“包”的概念,有层次的去区分每一个类,那...原创 2019-07-09 15:34:47 · 386 阅读 · 0 评论