
PHP 100例
文章平均质量分 81
单点突破,点动成线,点动成面,面动成体。
小雨青年
2025年和我一起做属于自己的独立开发项目!CSDN博客专家,GitChat专栏作者,阿里云社区专家博主,51CTO专家博主。2023博客之星TOP153。
展开
-
【PHP】代码复用特殊类Trait的简要说明和相关举例
PHP 实现了一种代码复用的方法,称为 trait。Trait 是为类似 PHP 的单继承语言而准备的一种代码复用机制。Trait 为了减少单继承语言的限制,使开发人员能够自由地在不同层次结构内独立的类中复用 method。Trait 和 Class 组合的语义定义了一种减少复杂性的方式,避免传统多继承和 Mixin 类相关典型问题。Trait 和 Class 相似,但仅仅旨在用细粒度和一致的方式来组合功能。 无法通过 trait 自身来实例化。它为传统继承增加了水平特性的组合;也就是说,应用的几个 Cla原创 2022-06-08 12:25:41 · 704 阅读 · 0 评论 -
【Laravel】Laravel的auth认证中间件的Api-token详细配置说明
用户认证在任何框架内都是很重要的一部分,Laravel为用户认证提供了丰富的实现方式,包括但不仅限于本文将要解决以下问题:我们实现的token是api-token,最直观描述是,手动设置token值,自动校验token并返回用户表数据。第一步,配置数据表。对于需要验证的数据表,对应的model要设置继承。然后,需要在表中增加一列,建议长度64以上。第二步,修改。Laravel的auth配置可以理解为两层,->。相关的配置如下。第三步,业务上更新。第四步,需要验证的控制器配置中间件。这里我们需要注意的是原创 2022-06-03 21:18:02 · 6642 阅读 · 9 评论 -
一文概览设计Web API 中的细节
一、摘要2015年左右,移动互联网的兴起,伴随着的是服务端的演进。之前我们还在写MVC下的整站,后来就变成了给前端、客户端提供接口。因为接口是对外的,既然给别人使用,那总是有一些标准的,我做了简单的归纳,如果你刚开始写接口相关的工作,希望能给你启发。面向人群:0-3年,初级工程师,不区分语言。二、接口规范&版本更新目前常见的有三种,分别是REST、RPC、GraphQL。REST,基于资源的调用方式,是关于资源的RPC,远程过程调用,是关于动作的GraphQL,是查询接口对于一原创 2022-04-20 13:01:17 · 859 阅读 · 0 评论 -
【PHP100例】PHP处理表单数据
目录哪里需要处理表单怎么接收表单数据如何配置表单相关参数怎么保证安全性结束语哪里需要处理表单表单在我们的实际项目中很常见,比如官网的联系方式填写微信群收到的问卷调查涉及到收集用户输入内容的大部分都可以作为表单来处理数据。怎么接收表单数据网页作为信息的接收者,一般使用input标签作为信息输入的载体,常见的表单类型如下,HTML部分本文不重点展开。text 文本password 密码file 文件radio 单选checkbox 多选hidden 隐藏submit 表单提交原创 2022-04-11 09:00:00 · 3360 阅读 · 0 评论 -
【PHP】Yii2使用ActiveDataProvider超出页码一直展示最后一页的解决方案源码分析亲测有效
项目场景:ActiveDataProvider一般配合视图的GridView展示数据的列表页,并在列表下方展示GridView自带渲染的分页组件。问题描述:默认情况下,当在地址栏输入页码大于现有列表总页码下,ActiveDataProvider给返回的数据默认是最后一页的数据。有些场景下,我们需要了解是否分页已经达到了最后一页,所以不需要返回最后一页的数据,而是直接返回空数据。原因分析:源码分析:ActiveDataProvider使用的Pagination有个值validatePage默原创 2021-10-08 14:27:41 · 800 阅读 · 0 评论 -
【Memcached】实录PHP项目Yii2框架本地Docker-compose部署Memcached的坑/Yii2跨项目使用Memcached的key解决方案/亲测可用带源码建议收藏
给出结论docker部署的环境在docker内部,如果要在环境内访问,需要在项目配置中使用 host.docker.internal千万不能使用 localhost本地部署docker-compose文件本配置包括了nginxphpelasticsearchkibana拿走之后,部署之前,一定要改网段!!!version: "3"services: memcached: image: memcached:1.4.32 ports: - "11原创 2021-09-24 02:00:00 · 582 阅读 · 0 评论 -
docker本地部署memcached附带docker-compose部署memcached/elasticsearch/kibana/php/nginx脚本
docker本地部署memcached附带docker-compose部署memcached/elasticsearch/kibana/php/nginx脚本一、什么是memcachedMemcached 是一个通用的分布式内存缓存系统。 它通常用于通过在 RAM 中缓存数据和对象来加速动态数据库驱动的网站,以减少必须读取外部数据源(例如数据库或 API)的次数。Memcached 的 API 提供了一个分布在多台机器上的非常大的哈希表。 当表已满时,后续插入会导致以最近最少使用的顺序清除旧数据。 使原创 2021-09-18 14:40:06 · 2362 阅读 · 0 评论 -
MYSQL事务的四种隔离类型以及PHP框架Yii2中的源码解读和实际应用
生活中没有弱者,仅有不愿努力的人。目录一、什么是事务二、事务的特性1. 原子性 **A**tomicity2. 一致性 **C**onsistency3. 隔离性4. 持久性三、事务的隔离级别1.读未提交(Read uncommitted)2.读提交(read committed)3.可重复读(repeatable read)4. 串行化(Serializable)五、因为事务可能出现的问题1. 脏读2. 不可重复读3. 幻读六、四种隔离级别对脏读、不可重复读、幻读的影响七、Yii2中如何使用事务1.原创 2021-08-26 07:49:32 · 1414 阅读 · 3 评论 -
PHP精讲2021—如何获取真实客户端IP方法中学习扩展思维
生活中没有弱者,仅有不愿努力的人。目录一、前言二、由结论出发,先给代码?三、来自内心的拷问四、以点带面1. `$_SERVER`怎么可能没有呢?2. `$_SERVER`里不就有客户端IP`REMOTE_ADDR`为什么还要判断呢?3. `HTTP_CLIENT_IP`是哪里来的为什么本地测试没有?4. `REMOTE_ADDR`为什么不准呢?五、总结一、前言如果说学习的思路是从理论的简单逐渐复杂,最后归纳出一套体系。那么实践的思路就是先通过网络查到能解决问题的方法或者代码。然后呢?有的人.原创 2021-08-22 23:53:49 · 453 阅读 · 3 评论 -
PHP精讲2021—Yii2框架项目中的缓存Cache组件实际应用以及分析问题思路
生活中没有弱者,仅有不愿努力的人。前言我们在面试过程中,总是会遇到这样的面试题,去考察大家对于缓存的理解。但是这些理解总是偏向理论化。正所谓面试造火箭,上班拧螺丝。网上各种文章无时无刻都在告诉大家,怎么造火箭。诚然,过不去造火箭这一步,大家也是没办法去拧螺丝的。那么,在实际的生产项目中,如何去拧这个缓存的螺丝,我在这里记录下思路和代码,希望能给茫茫人海中的你一些思路。缓存在实际项目中加载方式目前大多数的框架都是组件的形式加载缓存配置,比如Yii2中的缓存组件文件缓存'cache' .原创 2021-08-22 23:12:53 · 660 阅读 · 1 评论 -
PHP精讲2021—从Yii2源码Response看web响应考察哪些知识点
日拱一卒无有尽,功不唐捐终入海 ????目录一、前言二、源码分析1. 执行流程2. HTTP状态码3. 返回格式4. 响应头5. 快捷方法三、知识点汇总1. HTTP状态码2. 301和302的区别3. 浏览器是如何获取Cookie的四、总结一、前言不管你是做接口还是做网站,都避免不了要返回数据给前端。不管你的前端是js还是iOS,你的服务器数据总要返回出来。不管你是token验证还是session校验,你总是要返回身份认证。二、源码分析Yii2的响应类Response的所在位置是vend原创 2021-08-12 08:36:04 · 545 阅读 · 1 评论 -
最全面的Yii2的Model规则rules校验Validate使用方法
前言作为经典三层架构MVC中的数据模型Model层,通常和数据库紧密连接,在数据读写之前,做数据的校验。Yii2作为目前比较流行的PHP框架,在Model层也做了非常完善的封装。下面是最全面的Model层数据验证的写法,各位可以根据自己的实际情况在自己的model中使用各自的方法。rules()基本写法rules()对应的是当前模型的字段,如果是对应数据库的表,就是对应表中的字段,gii生成的rules()是默认和表限制一样的,如果是自定义的表单,就需要自己对字段进行限制了。 public原创 2021-08-08 23:07:03 · 2885 阅读 · 1 评论 -
PHP面试题精讲—2021—时间日期格式化在实际项目的应用
书山有路勤为径,学海无涯苦作舟。目录一、时间日期类型的面试题长什么样子?1. 写出获取当前时间戳的函数,及打印前一天的时间的方法(格式:年-月-日 时:分:秒)2. 写出一个函数,参数为年份和月份,输出结果为指定月的天数二、知识总结1. 配置时区2.`time()` `microtime()` 时间戳 毫秒3. `date()` 格式化时间戳4. `mktime()` 获取一个日期的时间戳五、评论区作业六、总结一、时间日期类型的面试题长什么样子?1. 写出获取当前时间戳的函数,及打印前一天的时间.原创 2021-08-01 22:48:34 · 656 阅读 · 0 评论 -
PHP面试题精讲—从Yii2源码ActiveForm看如何安全处理表单验证
日拱一卒无有尽,功不唐捐终入海 ????目录一、问题:什么是安全的表单验证?二、经典场景:用户登录三、分析`ActiveForm`源码1.`enableClientValidation`客户端验证三、CSRF四、模型校验五、评论区作业1. 原生PHP写法下如何防止SQL注入?六、总结一、问题:什么是安全的表单验证?这个问题一般会作为面试题出现,因为PHP运用最广泛的还是web,那么对于web来讲,就会有表单处理数据。那么,如何处理表单,也就成了一个难以避开的经典问题。二、经典场景:用户登录以原创 2021-08-01 21:09:10 · 1337 阅读 · 1 评论 -
PHP面试题精讲 — 面向对象、类
日拱一卒无有尽,功不唐捐终入海 ????目录一、常见题型1. 面向对象的特点是什么?2. `private` `protected` `public` 的区别?3. 抽象类和接口的区别?4. PHP如何实现多继承?二、知识总结1. 访问控制`protected` `private` `public`2. 对象继承`extends`3. 魔术方法`__construct()`4. 类常量`const`5. 静态方法 `static`三、总结一、常见题型1. 面向对象的特点是什么?封装继承多原创 2021-07-25 23:57:37 · 1065 阅读 · 3 评论 -
PHP面试题精讲 — 基本数据类型、函数、弱类型
日拱一卒无有尽,功不唐捐终入海 ????目录一、常见题型1. 双引号和单引号的区别?2. `for`和`foreach`的区别?3. `echo`,`print`,`print_r`的区别?4. 多维数组是指的什么?5. 如何反转字符串?二、面试题型总结三、知识点整理(收藏)1. PHP支持的数据类型2. 函数相关 -- 数组排序`array_multisort()` 多个数组或多维数组排序`asort()` `arsort()` 根据数组的值进行排序`krsort()` `ksort()` 根据数组原创 2021-07-25 23:16:53 · 1009 阅读 · 3 评论 -
PHP面试题精讲—Session会话完全解析!亲测有效!建议收藏!
日拱一卒无有尽,功不唐捐终入海 ????目录1.SESSION 是什么?2. PHP中如何启用session?安装脚本中启用数据的存取生命周期3.SESSION和COOIKE的关系?4. 禁用SESSION的话COOKIE可用吗?5. 如何限制SESSION的过期时间严格30分钟?6. 怎么多台服务器共享SESSION?总结1.SESSION 是什么?我们说的SESSION指的是SESSION对象,用于存储用户信息。当web和服务器通信时,就会产生一个session对象,当会话过期之后,sess原创 2021-07-17 23:45:15 · 1309 阅读 · 8 评论 -
文件上传知多少,PHP面试学到老,虽然够用也挺好,知识体系也重要
日拱一卒无有尽,功不唐捐终入海 ????目录前言经典面试题1. PHP如何获取上传的文件?2. 哪些配置影响文件上传的大小数量?3. PHP除了POST还可以怎么接收上传文件?4.PHP上传文件的关键方法?文件上传处理完整解析文件上传的流程`php.ini`文件上传的配置完整的文件上传最佳实践总结前言文件上传作为常用功能,在面试中也是很基础的问题。很多开发者从网上随便搜一下面试题一背,一般也能过。但是你真的学会了吗?经典面试题1. PHP如何获取上传的文件?使用超全局变量$_FILES获原创 2021-07-08 08:09:19 · 1214 阅读 · 12 评论 -
PHP深入浅出学Yii2缓存Cache组件源码级详解(收藏不亏)
目录什么是缓存组件Cache定义缓存组件页面缓存PageCache配置页面缓存页面缓存PageCache是缓存组件Cache的一种应用自定义页面缓存过滤器页面缓存key的计算主动清理过期缓存优化缓存配置总结什么是缓存组件Cache缓存是提升 Web 应用性能简便有效的方式。 通过将相对静态的数据存储到缓存并在收到请求时取回缓存, 应用程序便节省了每次重新生成这些数据所需的时间。定义缓存组件Yii2的缓存是通过组件Component实现的,在项目的配置文件中,配置components->cac原创 2021-07-06 05:55:52 · 910 阅读 · 3 评论 -
【PHP】面试题精讲—无限级分类/无限分类的递归算法和非递归算法-带源码建议收藏
无限级分类无限极分类是一个非常经典的问题,这个问题的经典在于,考察你是不是会用递归,以及思路问题。下面让我们一层一层的分析问题,从中通过深度思考,学到更多的东西,这样不仅对于面试,并且对于以后的工作学习也是有帮助的。问题描述给出如下数组结构,输出返回层级菜单。输入$arr = [ ['id'=>1,'pid'=>0,'name'=>'内容管理'], ['id'=>2,'pid'=>1,'name'=>'内容管理1原创 2021-07-02 07:42:47 · 688 阅读 · 4 评论