
后端
文章平均质量分 54
黄昏后的田野
我就是我,看谁都上火;干货没有需要等夏天,自己晒?
展开
-
后续(php框架添加composer依赖)
自创框架添加composer包原创 2022-11-02 19:49:20 · 375 阅读 · 1 评论 -
mongodb的认识
MongoDB原创 2022-06-24 18:42:05 · 290 阅读 · 0 评论 -
swoft运行时的那些坑
swoft运行时的那些坑1,报错: Error(code:0) Interface ‘Swoft\Http\Server\Contract\MiddlewareInterface’ not found使用:composer require swoft/http-se rver --ignore-platform-req=ext-redis2.报错:InvalidArgumentException(code:500) Bean name of encryptor is not defined!原创 2022-05-23 20:34:25 · 387 阅读 · 0 评论 -
swoole的那些事
swoole的那些事Server startstart()启动服务器,监听所有TCP/UDP端口启动成功后会创建worker_num+2个进程。Master进程+Manager进程+serv->worker_num 个Worker进程。Master 主进程主进程内有多个Reactor线程,基于epol/kqueue进行网络事件轮询。收到数据后转发到 Worker进程去处理Manager 进程新的Worker进程 对所有Worker进程进行管理,Worker进程生命周期结束或者发生异常时原创 2022-05-23 14:55:23 · 97 阅读 · 0 评论 -
进程和线程一定认识
进程和线程进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程, 是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体。线程是程序执行中一个单一的顺序控制流程,是程序执行流的最小单元,是处 理器调度和分派的基本单位。一个进程可以有一个或多个线程。进程上面是cpu执行index.php文件时就是一个进程ps -efl grep php-fpm //使用命令查看进程进程可以开启cpu 核数的 1到4倍进程和线程区别线程是程序执行的最小单位,而进程是操作系统分配原创 2022-05-22 19:03:06 · 117 阅读 · 0 评论 -
swoole的学习
swoole的学习什么是swoole ?swoole是PHP的异步、 并行、高性能网络通信 引擎,使用纯C语言编 写,提供了PHP语言的 异步多线程服务器异步TCP/UDP网络客 户端,异步MySQL, 异步Redis数据库连 接池,AsyncTask, 稍息队列,毫秒定时 器,异步文件读写, 异步DNS查询Swoole内置了 Http/WebSocket服务 器端/客户端、 Http2.0服务器端。swoole提供的功能库•http服务,编写一个简自 的web server。•TCP/UDP原创 2022-05-17 16:31:18 · 630 阅读 · 0 评论 -
打造属于直接的php框架
打造属于直接的php框架:第一步创建目录:Admin 项目目录Index.php 入口文件App程序入口 Action © Model (M) View (V)Config 配置文件Log 框架日志目录Resource 资源目录(img、 css、 js等)目录结构index.php代码展示<?phpheader("Content-type:text/html;charset=utf-8"); //设置框架编码ini_set("date.timezone","Asia/Sh原创 2022-04-29 16:10:26 · 117 阅读 · 0 评论 -
php自动加载类使用
php自动加载类使用:目录结构index的代码展示<?phpheader("Content-type:text/html;charset=utf-8"); //设置框架编码ini_set("date.timezone", "Asia/Shanghai");//设置 时间区域const APP_PATH = __DIR__ . '/';//定义我们的项 目路径常量const Lib = '../PHPmm/';//定义我们的框架目录常量 //注意路径const Resource =原创 2022-04-28 18:19:35 · 560 阅读 · 0 评论 -
php开发自己的composer包
php开发自己的composer包:前提需要安装composer网站:https://packagist.org/ 可能需要梯子访问开发是最好先注册一下第一步创建插件:当想要初始化一个php项目的时候 , 或者想要开发一个类库给别人使用的时候都需要一个composer.json文件直接在项目目录输入 composer init 按照引导就可以生成了 , 详细的引导解释如下This command will guide you through creating your composer.js原创 2022-04-28 16:06:48 · 1434 阅读 · 0 评论 -
laravel使用简单使用MQ
laravel使用简单使用MQ简介:Laravel 队列为不同的后台队列服务提供了统一的 API,例如 Beanstalk,Amazon SQS,Redis,甚至其他基于关系型数据库的队列。队列的目的是将耗时的任务延时处理,比如发送邮件,从而大幅度缩短 Web 请求和响应的时间。队列配置文件存放在 config/queue.php。每一种队列驱动的配置都可以在该文件中找到,包括数据库、Beanstalkd、Amazon SQS、Redis以及同步(本地使用)驱动。其中还包含了一个 null 队列驱动用原创 2022-04-25 19:14:56 · 966 阅读 · 0 评论 -
php安装amqp扩展
MQ在laravel中简单使用:首先安装php 扩展 amqp对于mac 上集成环境MAMP安装/Applications/MAMP/bin/php/php7.3.29/bin/pecl install amqp首先安装rabbitmq-cbrew install rabbitmq-c查看rabbitmq-c安装目录cd /opt/homebrew/Cellar/rabbitmq-c/0.11.0安装过程提示:Set the path to librabbitmq install p原创 2022-04-22 17:25:05 · 2595 阅读 · 0 评论 -
laravel 永远返回 JSON 响应
laravel 永远返回 JSON 响应第一种方法(添加中间件)第一步、创建 JsonMiddlewareapp/Http/Middleware/JsonMiddleware.php<?php namespace App\Http\Middleware;use Closure;use Illuminate\Http\Request;class JsonMiddleware { public function handle(Request $request, Closure $原创 2022-04-21 14:15:14 · 1153 阅读 · 0 评论 -
Laravel增加自定义助手函数
Laravel增加自定义助手函数首先准备好一个laravel的框架在根目录app文件夹下新建helpers.php文件。打开根目录下composer.json文件,在autoload中增加"files":[“app/helpers.php”]进入命令行,进入当前项目中,执行composer dumpautoload命令。还有第二种方法(使用框架自己引导加载)在 bootstrap/app.php 中增加 require __DIR__ . '/../app/helpers.php';原创 2022-04-21 13:34:18 · 577 阅读 · 0 评论 -
Laravel绑定钉钉群警报(php)
Laravel绑定钉钉群警报:第一步:搞一个 钉钉机器人。为什么说要搞一个钉钉机器人,而不是开发一个钉钉机器人呢,因为我这次介绍的这个钉钉机器人添加起来太简单了,算不上开发编程的技巧。我们这次添加的钉钉机器人只有一个功能,就是通过钉钉机器人往钉钉群里面发送消息,不会回答消息。不会像客服机器人一样回答你的提问。该机器人主要用于定时将关键信息推送到群里面,提醒群里面的人要注意什么事情。1 添加钉钉机器人打开电脑版的钉钉,点击左上角的头像,再点击机器人管理。点击 自定义 机器人点击添加然后,把原创 2022-04-21 13:13:36 · 669 阅读 · 0 评论 -
MQ的了解
MQ的了解:如果进行产品选型Kafka优点:吞吐量非常大,性能非常好,集群高可用。缺点:会丢数据,功能比较单一使用场景:日志分析、大数据采集RebbitMQ优点:消息可靠性高,功能全面。缺点:吞吐量比较低,消息积累会严重影响性能。erlang语言不好定制。使用场景:小规模场景。RocketMQ (阿里产品)优点:高吞吐、高性能、高可用,功能非常全面。缺点:开源版功能不如云上商业版。官方文档和周边生态还不够成熟。客户端只支持java使用场景:几乎是全场景。rabbitmq的镜像队列原创 2022-04-19 16:06:28 · 1967 阅读 · 0 评论 -
RebbitMQ的初步了解
RebbitMQ的初步了解消息队列有哪些作用1 解藕:使用消息队列来作为两个系統的通讯方式,两个系统不需要相互依赖了 2.异步:系统A给消费队列发送完消息之后,就可以继续做其他事情了3. 流量削峰:如果使用消息队列的方式来调用某个系統,那么消息将在队列中排队,有消费者自己控制消费速度死信队列是什么?延时队列是什么?死信队列也是一个消息队列,它是用来存放那些没有成功消费的消息的,通常可以用来作为消息重试2.延时队列就是用来存放需要在指定时间被处理的元素的队列,通常可以用来处理一些具有过期性操作的原创 2022-04-19 12:32:25 · 2132 阅读 · 0 评论 -
实现docker可视化
第一步安装docker:推荐一个好用的xsell工具,感兴趣的话可以看一下用yum源安装查看是否已安装docker列表yum list installed | grep docker安装docker//-y表示不询问安装,直到安装成功,安装完后再次查看安装列表yum -y install docker启动dockersystemctl start docker查看docker服务状态systemctl status docker恭喜你安装成功😍😍😍😍第二步安装do原创 2022-03-21 18:55:01 · 5019 阅读 · 0 评论 -
laravel的接值及验证
laravel的接值封装及验证原创 2022-03-17 19:16:50 · 332 阅读 · 0 评论 -
跳坑坑,实现laravel的jwt(详细)
跳坑坑,实现laravel的jwt(详细):首先坑的运行环境看是nginx 还是apache nginx没有坑,apache有用户认证JWT 完整使用详解:https://laravel-china.org/articles/10885/full-use-of-jwt吃亏是福😝😜🤪😝<IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine On #开启rewriteEngi原创 2022-03-17 09:10:08 · 4322 阅读 · 0 评论 -
对接app 微信登录,QQ登录流程(php)
对接app 微信登录流程(php):先捋一下思路:移动端app调起微信登录之后,拿到openId和accesstoken,去调用后端的接口,后端要先检查后端数据库中是否有相同的openId,在返回的结果中,要有标记字段,告诉前端是否已经存在这个openId对应的用户了,如果存在了,就返回用户信息完成登录,如果没有对应的用户,要告诉前端前去绑定这个openId,,然后用户去调用绑定接口,给后端发参数(openId,tel,code),完成绑定,,下次再登录时候,就能查到这个openid,对应的用户了,这原创 2022-03-04 11:55:37 · 1669 阅读 · 2 评论 -
sql 查询相互关注的人
sql 查询相互关注的人现在有一张表为fans(粉丝表) 里面有两个字段from_user,to_user ,代表from_user关注了to_user简单的写法sql,我也是这种写法😝select a.from_user, a.to_user, if(b.from_user is not null, 1, 0) as is_friendfrom fans a left join fans bon a.from_user = b.to_user and a.to_user = b.f原创 2022-03-07 10:38:57 · 3101 阅读 · 2 评论 -
阿里云一键登录(对接移动端) PHP
阿里云一键登录(对接移动端) PHP一键登录的流程一键登录的好处极速稳定无需发送短信验证码,避免出现通道拥堵,短信延迟等不稳定因素。节约短信成本一键登录比短信验证成本降低了20%以上,而且不需要专门的开发运营。优化用户体验用户只需点击一下,不需要输入密码和验证码,2秒完成注册/登录。降低注册降低注册/登录门槛、从而减少流失率、提高转化率和留存率。绑定手机号码运营商端校验手机号码,能确保手机号码的真实有效性,过滤无效注册/异常登录。安全无风险SUBMAIL 一键登录服务应用多种安全原创 2022-03-05 16:32:23 · 3249 阅读 · 2 评论 -
订单号创建(php)
订单号创建原创 2022-03-03 15:03:16 · 1139 阅读 · 1 评论 -
php查询周边
数据库CREATE TABLE `m_cities` ( `id` int(11) NOT NULL AUTO_INCREMENT, `nid` int(11) NOT NULL DEFAULT '0' COMMENT '城市id', `level` int(11) NOT NULL DEFAULT '0' COMMENT '省市级别', `pid` int(11) NOT NULL DEFAULT '0' COMMENT '父级id', `area_code` varchar(30)原创 2021-08-16 18:43:10 · 143 阅读 · 0 评论 -
php 简单的微信支付
php微信支付实现1.下载微信官方支付包在这里插入图片描述放到public下然后config 下 建一个 pay.php<?phpreturn [ 'wechatPay' => [ // 必要配置 'app_id' => 'appid', 'mch_id' => '*********', 'key' => '*********'原创 2021-07-22 16:33:06 · 1567 阅读 · 2 评论 -
window 10 docker部署
首先准备好docker环境,以及docker的可视化安装包自行寻找,暂不提供.菜鸟教程:https://www.runoob.com/docker/docker-tutorial.html首先安装nginxdocker pull nginx:版本号 docker pull nginx:latest //默认最新 随后执行docker run--name nginx-test -p 8080:80-d nginx编辑nginx的配置文件server { listen原创 2021-07-13 14:10:36 · 283 阅读 · 0 评论 -
订阅消息通知,客服
##订阅消息通知,客服 标题微信公众平台没开通开通一下,执行微信小程序客服 <button open-type="contact" bindcontact="subscribeMessage">订阅</button>Js subscribeMessage(e){ let tempid = '***********'; wx.requestSubscribeMessage({ tmplIds: [tempid],原创 2021-07-08 18:57:56 · 175 阅读 · 2 评论 -
砍价两种种算法(转载)
砍价破浪算法(第一种)/** * 波浪递减砍价算法 * @param $count 拆分数量 * @param $price 拆分总价 */function new_split_red_packet($count = 20, $price = 5){ //已砍价格数组 $aleadyList = []; //已砍钱的总和 $aleadyCut = 0; for ($i = 0; $i < $count; $i++) { //此次原创 2021-07-07 20:41:37 · 1079 阅读 · 0 评论 -
好用的地址转径纬度
好用的地址转径纬度当我们在结算两者之间距离时地址转径纬度非常头疼1.根据经纬度取得地址:请求地址:http://api.map.baidu.com/geocoder/v2/?callback=renderReverse&location=30.68093376455154,104.06552381979525&output=json&pois=1&ak=你的ak在此之前框架中获取到经纬度的方法这里我用Laravel 5.8框架举例Guzzle-http用于发原创 2021-07-02 21:24:32 · 1232 阅读 · 3 评论 -
简单的微信之第三方登录
先看图解(qq和微信都一样啦)数据库设计用户基础表(users)用户验证关联表(user_auth_rel)本地用户表(user_local_auth)第三方用户表(user_third_auth)第三方登陆主要是基于OAuth2.0协议来实现1、首先我们需要以开发者的身份向第三方登陆平台申请接入应用,申请成功后,我会获得一个applD和一个secrectlD.2、当我们的网站需接入第三方登陆时,会引导用户跳转到第三方的登陆授权页面,此时把之前申请的applD和secrectID原创 2021-06-27 19:14:57 · 994 阅读 · 0 评论 -
TP使用jwt(简单)
TP使用jwt(简单)安装tp安装jwtcomposer require lcobucci/jwt 3.3接下来封装一个jwt 规则最好加在<?phpnamespace tools\jwt;use Lcobucci\JWT\Builder;use Lcobucci\JWT\Parser;use Lcobucci\JWT\Signer\Hmac\Sha256;use Lcobucci\JWT\ValidationData;/** * Created by PhpStor原创 2021-06-23 15:11:48 · 903 阅读 · 0 评论 -
常见的攻击以及预防
在这提一嘴Linux是有CLamav杀毒软件管理Linux系统的详细:欢迎使用CLamav杀毒软件管理Linux系统csrf中文名称:跨站请求伪造CSRF可以做什么?攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账……造成的问题包括:个人隐私泄露以及财产安全。 目前防御 CSRF 攻击主要有三种策略:验证 HTTP Referer 字段;在请求地址中添加 token 并验证;在 HTTP 头中自定义属性原创 2021-06-17 21:41:40 · 208 阅读 · 0 评论 -
加密方式(5)
加密方式(5)五种加密方式:sha1password_hashmd5base64_encodemd5(md5)openssl_encrypt<?php$pass = "1244566";//方式一//echo md5($pass);//echo md5(md5($pass));//不可逆//方式二//echo sha1($pass); //不可逆'//方式三//echo password_hash($pass,PASSWORD_BCRYPT);/原创 2021-06-17 21:13:19 · 246 阅读 · 0 评论 -
laravel中jwt的使用(详细)
laravel中jwt的使用(详细)首先是理论,随后实现JWT 出场JWT 还有个好处,那就是你可以不用在服务端存储认证信息(比如 token),完全由客户端提供,服务端只要根据 JWT 自身提供的解密算法就可以验证用户合法性,而且这个过程是安全的。JWT 数据结构JWT 最后的形式就是个字符串,它由头部、载荷与签名这三部分组成,中间以「.」分隔。像下面这样:头部头部以 JSON 格式表示,用于指明令牌类型和加密算法。形式如下,表示使用 JWT 格式,加密算法采用 HS256,这是最常用的算原创 2021-06-17 21:03:37 · 9624 阅读 · 0 评论 -
swoole多人聊天(php)
多人群聊 (swoole)[php实现]上代码服务器端<?php//服务器代码//创建 websocket 服务器代码$ws = new swoole_websocket_server("0.0.0.0",9500);// on 函数 open message close$ws->on('open',function($ws,$request){ echo "新用户 $request->fd 加入。\n"; $GLOBALS['fd'][$reque原创 2021-04-12 23:32:12 · 566 阅读 · 0 评论 -
SWOOLE简单单人聊天室(php)
**SWOOLE简单单人聊天室(php)**服务器可使用宝塔…自配环境也可以.端口号可以自定义. “9200”php<?php//创建WebSocket Server对象,监听0.0.0.0:9502端口$ws = new Swoole\WebSocket\Server('0.0.0.0', 9200);//监听WebSocket连接打开事件$ws->on('Open', function ($ws, $request) { $ws->push($requ原创 2021-04-06 22:17:09 · 286 阅读 · 0 评论