
后端PHP类
PHP 相关技术类
不喝二锅头
keep running
展开
-
自动加载配置与设计模式
PHP中使用ArrayAccess实现配置文件加载在工厂方法中读取配置,生成可配置化的对象使用装饰器模式,生成可配置化的对象使用装饰器模式实现权限验证,模板渲染,json串化使用观察者模式实现数据更新事件的一系列更新操作使用代理模式实现数据库的主从自动切换...原创 2021-01-14 15:41:17 · 190 阅读 · 0 评论 -
秒杀设计
前言课程目标掌握秒杀系统的核心实现系统高可用的方法论学习高并发场景的通用解决思路学习原理知识介绍减而治之(CDN原理/nginx限流/异步队形)分而治之(nginx负载均衡)特征与难点分析特征1 写强一致性(eg:商品超卖)2 读弱一致性(eg: 12306抢票 显示有抢不到)难点1 极致性能的实现(并发量高提高单服务)2 高可用的保证秒杀系统核心实现极致性能的读服务实现极致性能的写服务器(eg 扣库存 创建订单)极致性能的派对进度查询(eg:12306 抢原创 2021-01-22 14:10:21 · 255 阅读 · 2 评论 -
laravel上传图片,目录有图片, 访问404
问题laravel 上传图片 (项目是从别的服务器拷贝过来布置到新的服务器上) 查看目录有图片 但是 访问却总是报404解决办法在项目目录下面删除public/storagerm -rf public/storage重新建立软连接php artisan storage:link 再访问图片就正常了...原创 2021-01-05 17:37:00 · 872 阅读 · 0 评论 -
面向对象认识
面向对象概念什么是对象世间万物皆对象 如是我闻(不抽象–可见实例) 都是对象 如我不闻(抽象-不可见) 也是对象对象的基本组成– 对象的组成元素是对象的数据模型 用于描述对象的数据又称为对象的属性 或者对象的成员变量–对象的行为是队形的行为模型 用于描述对象能做什么事情又称为对象的方法对象的特点每个对象都是独一无二的对象是个特定的事物,他的职能是完成特定的功能对象是可以重复使用的什么是面向对象面向就是在编程的时候一直吧对象放在心上面向对象编程就是 在变成的时原创 2021-01-11 18:04:25 · 281 阅读 · 0 评论 -
php合并数组的两种方法及区别
前言源自慕课网皮奇 秒杀设计课程 所做的笔记课程目标掌握秒杀系统的核心实现系统高可用的方法论学习高并发场景的通用解决思路学习原理知识介绍减而治之(CDN原理/nginx限流/异步队形)分而治之(nginx负载均衡)特征与难点分析特征1 写强一致性(eg:商品超卖)2 读弱一致性(eg: 12306抢票 显示有抢不到)难点1 极致性能的实现(并发量高提高单服务)...原创 2021-03-24 16:55:20 · 203 阅读 · 1 评论 -
php -v和phpinfo() 输出的php版本不一致
怀疑是系统变量捣的鬼 执行下面果然成功export PATH=/usr/local/php/bin:/usr/local/php/sbin:${PATH}source ~/.bash_profilec即可解决原创 2020-07-08 17:30:18 · 657 阅读 · 0 评论 -
thinkphp源码学习之-( 扩展 yaml 安装)
yum install libyaml-develpecl install yaml原创 2020-09-08 13:58:44 · 324 阅读 · 0 评论 -
laravel 学习之路由
laravel 的路由HTTP方法Route::get($url,$callback)//获取资源Route::post($url,$callback)//创建资源Route::put($url,$callback)//更新资源Route::patch($url,$callback)//增量更新资源Route::delete($url,$callback)//删除资源Route::options($url,$callback)//查询资源支持哪些方法Route::any($url,$c原创 2020-11-03 15:03:53 · 135 阅读 · 0 评论 -
php 生成UUID
前言前段时间接触到接口 只给了个java的实例文档 采用签名鉴权方式 其中用java中的UUID如下图所示:php生成UUID的方法 public function gen_uuid() { $uuid = array( 'time_low' => 0, 'time_mid' => 0, 'time_hi' => 0, 'clock_seq_hi原创 2020-12-28 11:19:57 · 2684 阅读 · 0 评论 -
thinkphp5跟thinkphp6的异同之处
目录结构异同安装方式tp6只能通过composer安装类的加载方式tp5采用自己的一套实现加载方式+composer部分加载方式tp6采用composer类的加载方式tp6使用严格模式而tp5没有使用tp6支持更多的PSR规范组件独立 (tp6将orm独立出来)(模板引擎)中间件改进tp6开始使用了管道模式来实现中间件 比之间的版本实现更加简洁,有序引入Filesystem组件...原创 2020-08-17 14:54:21 · 3587 阅读 · 0 评论 -
正则验证手机号
【代码】正则验证手机号。原创 2024-03-20 23:15:00 · 349 阅读 · 0 评论 -
JAVA的DigestUtils.md5Hex 在php的写法
前端时间对接接口只提供了java的实例文档 其中 采用签名算法鉴权 本人是个java小白 但是本着语言都有些相通性去理解 java中的DigestUtils.md5Hex 相当于PHP中的md5加密 但是在过程中发现 php的MD5加密跟java中的DigestUtils.md5Hex 如果是简单的 字符串 如12345 这样的 结果是一样的 但是针对复杂的字符串 加密结果 有出入 所以整理了下面的 写法class JavaMd5Hex{//使用方法为:调用 md5H.原创 2020-12-28 11:57:31 · 3851 阅读 · 2 评论 -
laravel学习之 --核心思想
服务容器容器概念容器中装的是实例对象(服务)IOC控制反转DI依赖注入如控制器中在函数的参数中加入一个类 就会在函数中注入一个实例eg 服务提供者门脸模式静态调用eg:public function index(){$params=\Request::all();}app.php->aliases...原创 2020-12-09 14:29:08 · 163 阅读 · 0 评论 -
thinkphp源码学习之(一幅草图看懂容器类)
原创 2020-09-28 16:21:18 · 184 阅读 · 0 评论 -
设计模式
适配器模式可以姜截然不同的函数接口封装成统一的API实际应用举例,PHP的数据库操作有mysql,mysqli,pdo 3种,可以用适配器模式统一成一致。类似的场景还有cache适配器,将memachche, redis,file,apc等不同的缓存函数,统一成一致策略模式将一组特定的行为和算法封装成类,以适应某些特定的上下文环境,这种模式就是策略模式应用举例 加入一个电商网站系统,针对男女用户要求跳转到不同的商品类目,并且所有广告位展示不同的广告...原创 2021-01-14 14:55:43 · 144 阅读 · 0 评论 -
win10下子系统phpstorm配合xdebug3 进行断点调试
使用背景:公司的架构为api+wab为两个独立的项目,service单独独立了出来,为专门跟数据库进行交互, 这样在开发的过程中service层的数据不能直接反馈到 api或者wab, 只能用trace来打印日志 非常不便。开发过程中 需要不断打印输出结果如果你厌烦了dump echo print trace 等打印的方式不妨试试xdebug的断点原创 2021-09-23 16:03:36 · 676 阅读 · 0 评论 -
thinkphp源码学习之-( 单例模式、注册树模式、依赖注入、反射机制)
单例模式------是为了解决(如何在整个项目中创建一个唯一的对象实例)拥有一个构造函数,并且为private拥有一个静态成员变量用来保持类的实例拥有一个访问这个实例的静态方法代码如下就是一个简单的单例模式<?phpclass Single { static public $instance= null; private function __construct() { } /** * @return Single|null原创 2020-09-08 17:44:34 · 384 阅读 · 0 评论 -
lnmp1.4以上 安装TP等框架首页出现空白
.user.ini文件无法直接修改,如要修或删除需要先执行:chattr -i /网站目录/.user.ini可以使用winscp文件管理、vim编辑器或nano编辑器进行修改。删除的话rm -f /网站目录/.user.ini 就可以。修改完成后再执行:chattr +i /网站目录/.user.ini.user.ini不需要重启一般5分钟左右生效,也可以重启一下php-fpm立即生效。...原创 2020-04-14 11:23:32 · 197 阅读 · 0 评论 -
thinkphp6的学习笔记
控制器的巧用json 方法的使用控制器request属性绑定request对象会继承BaseController抽象类__construct 依赖注入将app对象实现$this->request->param('aa')第一种获取方式$request->param('aa')第二种依赖注入input("aa")第三种request()->param('aa')第四种 Request::param('aa') (门面模式)第五种健壮系统服务...原创 2020-08-19 14:43:38 · 440 阅读 · 0 评论 -
命名空间和类的自动载入
命名空间简介从广义上来说,命名空间是一种封装事物的方法 命名空间是一种封装事物的方法例如,在操作系统中目录用来将相关文件分组,对于目录中的文件来说,它就扮演了命名空间的角色。用来解决用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性。类的自动载入在编写面向对象(OOP) 程序时,很多开发者为每个类新建一个 PHP 文件。 这会带来一个烦恼:每个脚本的开头,都原创 2021-01-12 16:09:52 · 153 阅读 · 0 评论