
PHP
文章平均质量分 61
颜夕啊
向日葵
展开
-
laravel 创建和执行脚本任务
流程commands模式运行脚本定时任务基本流程在 app/Console/Commands/ 目录下创建脚本任务文件在app/Console/Kernel.php $commands数组中添加新建的脚本类在app/Console/Kernel.php schedule()方法中添加脚本定时任务命令具体实现`app/Console/Commands/QingShan/commandQingshan.php<?phpnamespace App\Console\Commands\QingS原创 2022-02-21 10:23:27 · 1303 阅读 · 0 评论 -
阿里云(云呼叫中心)API接口
研究的我抓耳挠腮,终于调通了。记录下成果。由于官网只有java的demo ,对于PHP程序员的我很是难受。o(╥﹏╥)o首先借鉴下官网的截图,了解下具体实现思路。AccessKey包括AccessKey ID和AccessKey Secret。AccessKeyId:简称AK,用于标识用户。AccessKeySecret:简称SK,用于验证用户的密钥。AccessKeySecret必须保密!这是java的demo代码(我附上连接可以参考阿里出的demo)CRM Demo AK版下载原创 2022-01-05 09:49:13 · 3131 阅读 · 0 评论 -
Windows下运行kafka
官网下载kafka压缩包运行前要先配置JAVA环境:java下载地址请点击:官网地址注意啦!!!kafka不需要搭建zookeeper环境哦~kafka自带了这个环境呦!!!2、解压并进入Kafka目录3、点击进入该目录 右键打开黑窗口1.zookeeper 启动命令(不要关闭黑窗口哦).\bin\windows\zookeeper-server-start.bat config\zookeeper.properties运行结果:注意:不要关了这个窗口运行kafka重新打原创 2021-06-07 19:52:39 · 928 阅读 · 2 评论 -
laravel 使用kafka
laravel框架安装kafka安装前提composer require nmred/kafka-php如果出现这个报错证明版本不一致我们要更改版本标题例如:更改到对应版本标题不要执行composer update(直接在执行下面这个命令)composer require nmred/kafka-php安装成功!!!!...原创 2021-06-08 07:36:48 · 1281 阅读 · 0 评论 -
PHP进阶面试题
比较一下php和go的区别?Go是一种静态类型语言。PHP是一种动态类型语言。PHP 每个请求进来时都会创建 fpm-worker 进程,从而导致系统并发高时 CPU 会产生频繁创建进程的开销,而 Go 不会。golang 是先编译,后执行。由于编译方面的原因,即使是糟糕的Golang代码也会优于良好的PHP代码,从而提高性能。由于多线程技术提高了Golang的效率,减少了部署规模,减少了内存占用量,Golang降低了企业的间接成本。什么是守护进程?守护进程(daemon)是一种特殊的进程,它原创 2021-06-11 09:24:10 · 3162 阅读 · 1 评论 -
PHP-面试的工作素养
工作素养如果你是技术组长,所带团队任务进度无法完成你该如何解决?如果在进度排满的前提下插入任务,你该如何保证总进度不延期?如果有的工程师今天预定任务没有完成,你该如何解决?主要考察你的考察带队能力。注意不是所有的问题都有非常肯定和完美的答案,思考和解决问题的方式,比回答问题本身更为重要。你对我们的薪资待遇了解吗?可以接受吗?这个问题主要也是看你的要求是否与公司给出的条件符合。如果你的要求高过公司给的条件很多,需求超出,那么肯定是没办法满足你的条件。如果能接受,OK,继续往下聊。很多大型公司会有宣讲原创 2021-06-11 08:39:45 · 223 阅读 · 0 评论 -
微信小程序直播+聊天+弹幕页面展示
不大方便展示视频哈~~<!--pages/contact/contact.wxml--><view> <view class="live-box"> <video id="myVideo" class="live-video" controls src="我用的是直播回放,由于微信小程序的直播暂时只支持商家的" enable-danmu danmu-btn></video> </view> <view原创 2021-06-10 11:30:51 · 5635 阅读 · 3 评论 -
PHP面试题总结
什么是IOC?IOC是Inversion of Control的缩写,多数书籍翻译成“控制反转”。IOC理论提出的观点大体是这样的:借助于“第三方”实现具有依赖关系的对象之间的解耦。由于引进了中间位置的“第三方”,也就是IOC容器,使得A、B、C、D这4个对象没有了耦合关系,齿轮之间的传动全部依靠“第三方”了,全部对象的控制权全部上缴给“第三方”IOC容器,所以,IOC容器成了整个系统的关键核心,它起到了一种类似“粘合剂”的作用,把系统中的所有对象粘合在一起发挥作用,如果没有这个“粘合剂”,对象与对象原创 2021-03-28 21:19:47 · 593 阅读 · 1 评论 -
TP6玩转高逼格框架服务【代码高度解耦】
导读本章先讲解TP6的多应用模式,在多应用模式下很多初学者会遇到很多坑,课程都有提及,再讲解5层架构建设让系统能够做到代码高度解耦,多复用等能力。并且还讲解了不可预知的内部异常处理、中间件等,关于服务,事件内容会在实战课程中渗透。多应用模式安装开始多应用TP5是不需要安装扩展就可以开启多应用的,tp6需要使用composer来开启多应用模式扩展,注意:多应用下,控制器只能在该应用中使用。composer require topthink/think-multi-app多应用模式下路由规则容原创 2021-03-25 09:27:03 · 1517 阅读 · 2 评论 -
TP6基础知识【新框架】
导读本章主要讲解了TP5/TP6异同之处,基础的控制器层、模型层的使用,杜绝无效请求让代码更加健壮,数据库层问题排查解决方案,这些内容都是为后续电商实战做完美铺垫。TP5和TP6的异同之处目录结构异同tp5的框架目录在thinkphp,而tp6的框架项目在vendor下,所以tp6就只能用composer 的方式进行安装;安装方式异同tp5支持composer安装和官网下载源码安装包,而tp6只支持composer的方式进行安装类自动加载方式不同tp6使用composer机制原创 2021-03-25 09:17:04 · 4085 阅读 · 0 评论 -
【PHP行情分析】
导读本章主要讲解本课程的主线, 导学内容,PHP行情分析等让同学们对当前PHP发展充满信心等,同时还分析了企业级开发流程以及规范说明,让同学们对中大型公司的敏捷开发有一个初步认知。课程介绍本课程除了对TP6.0基础和电商逻辑整体开发进行讲解,还包含了企业级通用解决方案,如:消息队列、redis集群、分布式session解决方案、支付模块服务化、分布式锁、限流、容灾、服务降级、商品抢购、排队机制等高级的内容。初中级部分TP6基础电商业务逻辑开发高级部分Redis各种场景使用原创 2021-03-25 09:12:42 · 426 阅读 · 2 评论 -
数据库优化有哪些? 分别需要注意什么
数据库优化有哪些? 分别需要注意什么对操作系统、存储硬件网络、数据库原理等方面有比较扎实的基础知识,另一方面是需要花大量时间对特定的数据库进行实践测试与总结。非常了解我们SQL的业务逻辑,我们清楚SQL中访问表及字段的数据情况,我们其实只关心我们的SQL是否能尽快返回结果。那程序员如何利用已知的知识进行数据库优化?如何能快速定位SQL性能问题并找到正确的优化方向?说快速找到我们SQL主要的开销在哪里?而大多数情况性能最慢的设备会是瓶颈点,如下载时网络速度可能会是瓶颈点,本地复制文件时硬盘可能会是瓶颈点原创 2021-03-25 09:00:02 · 830 阅读 · 0 评论 -
thinkphp6:如何玩转中间件
中间件主要处理http请求,比如拦截、过滤,对此进行相应的处理如果在多应用模式下,我们可以为各个模块新增这个文件,用来处理自己的http请求。注意,必须要新增handle方法。启动中间件方案一:通过共同文件配置,对所有的页面都适用创建好中间件后,暂时还不可用,我们需要做配置,将app目录下的中间件定义文件复制到当前模块目录下,定义好路径即可。方案二:通过路由绑定,指定特定的页面...原创 2021-03-22 21:55:31 · 207 阅读 · 0 评论 -
thinkphp6:如何处理内部错误
对于如何处理异常,我们可以通过thinkphp6内部方法进行处理由于我们现在是多应用模式,此文件是公共文件,因此,我们不能直接在这个文件设置返回信息。举例子,此数据类型只适合应用api错误信息返回,不利于admin后台数据引擎。解决方案可以在各个应用里面提供一个专门的地方即目录用来存放这些错误处理方法。必须引入三个处理类,此类必须继承handle类,接着覆写render方法文件是定义好了,但是程序是无法识别的,我们还需要在当前模块下增加provider文件,将错误信息处理方法与我们新建的文原创 2021-03-22 21:53:52 · 2449 阅读 · 0 评论 -
ThinkPHP6项目基操(架构分层)
架构分层一、分层意义二、代码架构三、common层设计四、实践代码**一、分层意义**意义我觉得最重要的是方便维护,如果代码没有分层,都是写在控制器里,包括了各种参数校验,各种情景判断,各种数据查询返回结果不同,十分混乱,出现问题很难定位,修改需求十分头疼,良好的分层架构可以解决后顾之忧。二、代码架构这里借用了某课网老师的图,我又重新画了一遍,我们把代码分为以上5个模块,它们的作用分别为:三、common层设计有些模块对于多个应用是可以公用的,所以可以创建一个common目录存原创 2021-03-22 21:50:15 · 214 阅读 · 0 评论 -
Thinkphp6开启多应用模式
1.检查Composer是否安装成功在开启多应用模式之前要确保你已经安装好Composer如果没有安装则可以根据官网的操作步骤完成安装https://www.kancloud.cn/manual/thinkphp6_0/10374812.在电脑上安装Composercomposer require topthink/think-multi-app3.安装成功后在vendor这个文件夹就可以看到新增的扩展啦4.如何使用配置成功后,我们就可以在app目录下新建多个模块了每个模块里面原创 2021-03-22 21:46:11 · 451 阅读 · 0 评论 -
thinkphp6:如何封装优化api数据格式
在app根目录下Common.php文件中存放的是公共的方法,在这里定义的方法,可以在任何程序中的文件中都可以使用。参数解析:status 状态码,一般是0或者是1,0代表错误,1代表正确,有数据返回。message 错误信息httpstatus 描述http请求,200表示正常,404表示页面不存在,这些都可以在文件中约定data 返回数据,如果数据为空,可以使用null进行描述。但是,此时,在这个方法当中存在常用,比如status中的0或者1,http状态码200,我原创 2021-03-22 21:40:05 · 375 阅读 · 0 评论 -
tp6杜绝无效请求
在config/app.php文件里可以修改开发者模式等(true/false)**魔术方法call**方法不存在时当程序调用当前类中未声明或者没有权限调用的方法时,系统会自动调用该方法public function __call($name,$arguments){ $result = [ 'status'=>0, 'message'=>"找不到该方法", 'result'=>null, ]; return json($result, code:400);}原创 2021-03-22 21:34:27 · 263 阅读 · 0 评论 -
ThinkPHP6项目基操 (Db操作数据库的方式(方法) 和 ORM模型操作数据库的方式(方法)
1. 使用门面模式的Db类新建Data控制器,这里需要注意的是使用的facade\Db类,和TP5使用的think\Db不同:<?phpnamespace app\controller;use app\BaseController;use think\facade\Db;class Data extends BaseController{ public function index(){ $result = Db::table("demo")->whe原创 2021-03-22 21:26:44 · 1541 阅读 · 0 评论 -
thinkphp6:5种方法获取api请求地址中的参数
第一种方法tp6跟tp5不同的地方,在于tp6继承Baseconroller这个控制器,所以,我们可以直接使用Baseconroller里面的request方法。 public function show(){ dump($this->request->param("abc",2,'intval')); }参数解析name 参数名称default 默认值filter 将获取到的参数转换为整型第二种方法不用继承BaseConto原创 2021-03-22 21:07:13 · 2357 阅读 · 0 评论 -
thinkphp6 如何输出json数据
在tp5中,我们可以使用json()方法在网页中返回json数据。 public function show(){// 定义对象数组 $result=[ 'name'=>'wangwu', 'age'=>11, 'sex'=>'man' ];// 输出json数据 return jso原创 2021-03-22 20:59:45 · 1964 阅读 · 0 评论 -
PHP面试题
PHP面试题用php写出显示客户端IP和服务器IP的代码获取客户端IP:SERVER("REMOTEADDR")获取服务端IP:_SERVER("REMOTE_ADDR")获取服务端IP:SERVER("REMOTEADDR")获取服务端IP:_SERVER(“SERVER_ADDR”)数据库索引有几类?分别是什么?什么时候该用索引?普通索引、主键索引、唯一索引只有当经常查询到列中的数据时才需要在表上创建索引写几个魔术方法并说明作用?_call() 当调用不存在的方法时会自.原创 2021-03-21 18:54:39 · 3605 阅读 · 0 评论 -
使用 PHP 7.4 的 PHP 有什么新功能?
支持数组内解包 - 数组扩展运算符箭头函数 2.0 (更加简短的闭包)PHP 7.4 在数组表达式中引入 Spread 运算符[1]自 PHP 5.6 起可用,参数解包是将数组和 Traversable 解包为参数列表的语法。要解压一个数组或 Traversable,必须以 …(3 点)为前缀,如下例所示:>function test(...$args) { var_dump($args); }>>test(1, 2, 3);然而PHP 7.4 RFC建议将此功能扩展到.原创 2021-03-22 07:53:50 · 248 阅读 · 1 评论 -
PHP 笔试 + 面试题
本章主要介绍常见的 PHP 笔试 + 面试题,包括:基础及程序题数据库技术题综合技术题项目及设计题**基础及程序题**[1] 写一个排序算法,可以是冒泡排序或者是快速排序,假设待排序对象是一维数组(不能使用系统已有函数)(C/C++、PHP、Java)假设以下的排序都是从小到大排序C++ 实现冒泡排序在这里插入代码片PHP 实现冒泡排序function bubbleSort($arr, $n) // $n 为数组大小 { for ($i = 0原创 2021-03-21 19:16:57 · 485 阅读 · 0 评论