![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PHP
文章平均质量分 54
个人学习笔记
小信啊啊
让自己编程道路更实在!个人博客:https://www.tot7.cn/
展开
-
PHP-Xlswriter高性能导出Excel
使用背景使用传统的PHPExcel导出效率太慢,并且资源占用高,数据量大的情况,会导致服务占用大量的资源,从而导致生产意味,再三思索后,决定使用其他高效率的导出方式。原创 2023-12-20 19:01:57 · 1004 阅读 · 0 评论 -
Laravel 添加模型方法注释,让 PHPStorm 有语法提示
在项目中添加 barryvdh/laravel-ide-helper 包。原创 2023-03-16 21:43:20 · 563 阅读 · 1 评论 -
laravel Kernel 默认中间件说明
【代码】laravel Kernel 默认中间件说明。原创 2023-03-16 21:16:15 · 280 阅读 · 0 评论 -
yii2断点查询执行sql
因此查询日志中可能包含重复的查询语句。如果要避免这种情况,可以在执行查询之前调用**$db->flushCache()当开启查询日志时,Yii2会记录所有查询语句,包括查询缓存中的语句,这个会对我们的程序优化很有作用,可以随时查询某段SQL效率。然后我又去看了yii2中的,发现也有类似的功能。原创 2023-03-09 21:55:02 · 602 阅读 · 1 评论 -
laravel 邮件发送
可以在 mailable 类的 build 方法中使用 view 方法来指定在渲染邮件内容时要使用的模板。由于每封邮件通常使用 Blade 模板 来渲染其内容,因此在构建邮件 HTML 内容时你可以使用 Blade 模板引擎提供的所有功能及享受其带来的便利性。在此方法中,可以调用各种方法,例如 from、subject、view 和 attach 来配置电子邮件的呈现和传递。有两种方法配置发件人。邮件中的每一项都在配置文件中有单独的配置项,甚至是独有的「传输方式」,允许你的应用使用不同的邮件服务发送邮件。原创 2023-03-04 01:24:08 · 864 阅读 · 0 评论 -
使用PHP+yii2调用asmx服务接口
6:选择之后项目中会有一个Test.asmx服务程序,打开如下所示,如果想在一个服务中实现多个业务的方法就给多个[WebMethod]标签。在浏览器输入http://localhost:8091/Test.asmx,即可访问Test整个测试服务,如下图所示,说明服务发布成功。2.把WebROOT整个目录发布到IIS作为一个站点服务,输入网站名称,目录地址,和端口号,勾选立即启动。10:右键点击Test.asmx,选择在浏览器中查看即可看到该web服务中的方法列表。9:左侧有发布信息,如下则发布成功。原创 2023-02-21 11:19:48 · 657 阅读 · 0 评论 -
php实现socket简单通信
为了创建Websocket连接,需要通过浏览器发出请求,之后服务器进行回应,这个过程通常称为“握手”(handshaking)。这是比较正式的理解,在接下来使用方式中会在介绍到握手的实际含义。目标:我希望通过套接字的TCP传输来搭建一个服务器,这个服务器的作用是:接受多个客户端的连接并完成他们的相互通信。比如客户端A,客户端B同时连接到服务器S,客户端A向服务器S发送消息,服务器S会将A的消息转发给B,同理,B的消息也可以通过S被转发到A。这样就实现了客户端A和客户端B之间的相互通信。原创 2023-02-09 15:46:20 · 1200 阅读 · 0 评论 -
php外部调用非public方法--反射调用
通过反射,我们可以在运行时以逆向工程的方式对 PHP 类进行实例化,并对类中的属性和方法进行动态调用,不管这些属性和方法是否对外公开。比如将TeseService类的prTest方法设置成private。级别的属性和方法变成类以外可以访问。可以通过反射的方式将。在外部直接调用会报错。原创 2023-02-01 11:26:28 · 153 阅读 · 0 评论 -
Laravel request请求表单验证
Laravel request请求表单验证。原创 2022-10-11 19:31:14 · 486 阅读 · 0 评论 -
浅聊使用PHP实现微信公众号登录
每个公众号都有对应的AppID和AppSecret,可以登录微信公众平台基本配置中的开发者ID可以查看到。当然,这对应的是生产环境,对于那些关注的人数较多的公众号来说,是不会用这个ID来进行测试的。因此,微信公众平台还提供了相应的测试账号。code=12334566778&state=abcd的页面,在该页面中code是微信返回的一串字符串,且使用一次后即失效。公众平台测试账号进入(根据不同微信号可以在同一个公众号中建立不同的测试账号)。当用户点击该链接的时候,微信会弹出授权页面,当用户确认授权后,原创 2022-10-10 08:53:44 · 2100 阅读 · 0 评论 -
PHP在处理一些耗时任务时的处理方式
Symfony的Process组件用于在子进程中执行命令,其原理是使用PHP的proc_open函数来运行进程。支持Windows和Linux系统。这个函数和Linux下这个函数类似。需要注意的是,这个函数在Linux下才能使用,而且需要安装。PHP是支持并发的,只是平时很少使用。创建进程需要使用php的一个函数。,Linux下有个叫fork()的函数,原创 2022-09-30 08:55:52 · 804 阅读 · 0 评论 -
PHP 邮箱真实性检测
邮箱地址真实性检测接口,检查校验判断邮箱有效性,邮箱是否开通,邮箱是否真实邮箱,能否收到邮件,避免无效邮箱的发送与验证。原创 2022-09-19 11:49:31 · 824 阅读 · 0 评论 -
宝塔中使用Supervisor给laravel队列添加进程守护
宝塔是有提供Supervisor的,只不过需要单独安装,在宝塔软件中安装好 Supervisor 之后,添加守护进程添加成功后,会自启动注意事项1、如果 Supervisor 启动失败,查看一下 php 中相关函数是否被禁用2、php artisan queue:work –tries=3 这边建议加上 --tries 参数3、启动用户是 www...转载 2021-10-28 11:32:27 · 3558 阅读 · 0 评论 -
在laravel8中使用极验
今天想让自己的项目变得高大尚一些,我就去搞了极验的行为验证极验官网:https://www.geetest.com/由于我是在laravel8中使用的,就会非常方便。我找了一个适配laravel8的包在这个教程里面有完整的使用方式https://learnku.com/articles/53068该项目地址:https://packagist.org/packages/zbrettonye/geetest我在实际中的使用我使用的是laravel官方提供的auth登录注册注册:先找到app原创 2021-10-01 16:45:31 · 298 阅读 · 1 评论 -
laravel--用户认证脚手架
Laravel 自带了用户认证功能,我们将利用此功能来快速构建我们的用户中心。首先执行认证脚手架命令,生成代码:php artisan ui:auth安装完成后,打开 routes/web.php 查看修改了哪些内容:可以看到在我们的主页下,多了两个表达式,先看第一个:Auth::routes();此处是 Laravel 的用户认证路由,在 vendor/laravel/ui/src/AuthRouteMethods.php 中即可找到定义的地方,以上等同于:// 用户身份验证相关的路由转载 2021-09-30 21:38:50 · 332 阅读 · 0 评论 -
总结一下安装Laravel Mix所碰到的错误
我被一个错误搞了一个晚上,什么都没有干,光找这个错误了。这个问题大概就是说,npm默认会使用symbolic links来安装组件,也即我们在linux系统里经常用的软链接(ln -s)或硬链接(ln),但是有些文件系统不支持文件链接,比如Windows(或者说出于安全原因禁用了),有时候linux系统运行在有windows分区的硬盘上也不支持链接,比如virtualbox在windows主机上默认禁止在共享文件夹里使用symbolic links,当然也是出于安全考虑。那么npm inst原创 2021-09-27 01:01:23 · 460 阅读 · 0 评论 -
通过命令行把项目方法服务器上线
首先,我们需要把项目打包,sudo tar -zcvf showApi.tar.gz ./showApi/showApi.tar.gz是要打包成的名字./showApi/是要打包的文件目录打包成功后,会有一个压缩包然后就是执行把文件传到服务器命令了scp showApi.tar.gz root@114.55.125.179:/www/wwwroot/api.showscp 要传递的文件 服务器账号@服务器ip:目标文件夹(服务器的)然后在服务器查看一下有没有过来然后在服务器执行解原创 2021-09-25 15:26:36 · 88 阅读 · 0 评论 -
laravel之自定义门面模式
Facades 工作原理在 Laravel 应用中,Facade 就是一个可以从容器访问对象的类。其中核心的部件就是 Facade 类。不管是 Laravel 自带的 Facades,还是自定义的 Facades,都继承自 Illuminate\Support\Facades\Facade 类。比如:看吧,必须要继承于Facade,如果没有继承,那就没有方法工作的。所以,在我们想要定义门面的时候,也必须要继承自定义门面由于门面都是Facade代表,所以我创建了一个Facades目录,在a原创 2021-09-24 19:25:11 · 507 阅读 · 0 评论 -
物流服务--查询物流
我使用的是快递鸟的服务,因为查询物流每天有500次免费请求的就会地址但是,这个我要做的功能是快递查询,这里的快递查询是收费的,但是,他提供了沙箱调试,里面生成的一些都是测试数据调用后会生成数据但是,在laravel中,怎么去调用它呢,其实,我觉得,最快的方法就是去下载它的demohttp://www.kdniao.com/documents-demo下载PHP版的然后去定义一个路由//物流查询$api->post('orders/{order}/express', [\A原创 2021-09-24 19:03:09 · 552 阅读 · 1 评论 -
laravel--支付宝支付和微信支付
由于个人用户不能认证支付宝支付,所以,我们学习的话,只能是使用沙箱环境https://opendocs.alipay.com/open/200/105311支付宝也提供了相关API文档,不过也是要我们自己去组装起来使用的,https://opendocs.alipay.com/apis去安装扩展包找到laravel的扩展包安装命令composer require yansongda/laravel-pay:~3.0.0安装完成后,再去发布配置文件php artisan vendor:原创 2021-09-23 11:48:59 · 2564 阅读 · 1 评论 -
任务调度--处理订单过期时间
启动调度器使用这个调度器时,只需要把下面的 Cron 条目添加到你的服务器中。如果你不知道如何在服务器中添加 Cron 条目首先执行crontab -e然后将这个添加到里面/home/vagrant/code/showApi是绝对路径* * * * * php /home/vagrant/code/showApi/artisan schedule:run >> /dev/null 2>&1就是说,在Linux系统中该 Cron 会每分钟调用一次 Larave原创 2021-09-22 12:33:50 · 264 阅读 · 0 评论 -
在进行搜索的时候,维持搜索条件
我使用的是laravel8,在laravel中,在查询构造器中有一个appends方法,可以在查询的时候保持查询条件如://搜索条件 $title = $request->query('title');//标题 $category_id = $request->query('category_id');//分类 //商品分页数据 $goods = Good::select('id', 'title', 'price', 'co原创 2021-09-19 23:29:59 · 184 阅读 · 0 评论 -
laravel学习笔记--响应篇
创建响应Laravel 提供了多种不同的方式来返回响应,最基本的响应就是从路由或控制器返回一个简单的字符串,框架会自动将这个字符串转化为一个完整的HTTP 响应 return 'Hello World';Response 对象通常,我们并不只是从路由动作简单返回字符串和数组,大多数情况下,都会返回一个完整的 Illuminate\Http\Response 实例或视图return response('hello', 200) ->header('Conte原创 2021-09-17 23:38:00 · 409 阅读 · 0 评论 -
laravel中使用获取手机验证码绑定手机号
我使用的是阿里云的短信包。如果是让我们直接写短信扩展发送的话,工作量是非常大的,所以,我使用的是外部扩展包去packagist中搜索sms我使用的是这一个安装命令composer require overtrue/easy-sms这是一款满足你的多种发送需求的短信发送组件,支持多家平台的手机短信组件首先,第一时间去申请阿里云短信签名和模板(大坑比来着)短信模板然后去使用下载的类库把use Overtrue\EasySms\EasySms;$config = [ //原创 2021-09-17 23:37:26 · 1063 阅读 · 0 评论 -
laravel怎么样快速验证密码并实现加密插入数据库
一般我们在数据库中的密码都是使用密文储存的,这样子做是比较安全,那么,如果用户在需要修改密码的时候,怎么样可以做到快速验证呢?比如,某用户输入了123456(想要修改的密码)而数据库中的密码是密文存储的,如果正常对比肯定是不正确的。那么,有两种方法,第一次,使用与之对应的密文加密后再与之对比。第二种,laravel提供了一个快速验证的方法password_verify()password_verify('用户输入的密码','数据库的密码')这样就可以快速对比了例如,我项目中的//获取用户原创 2021-09-17 14:21:34 · 602 阅读 · 0 评论 -
生成数据库测试数据
laravel中faker在laravel中已经自动集成,无需手动安装。如需在其他地方使用,可使用以下命令进行安装composer require fzaninotto/faker可通过在 config/app.php 增加如下配置使其支持中文:'faker_locale' => 'zh_CN',这样去使用它$randomDigit = $faker->randomDigit;//生成0-9之间的随机数$randomDigitNotNull = $faker->rando原创 2021-09-17 09:51:29 · 1151 阅读 · 1 评论 -
在laravel中使用tinker调试
laravel 使用tinker 调试我们在开发过程中,会遇到通过浏览器界面来触发某个请求,但是如果界出问题,我们只能只能通过直接调试代码中的控制器方法,此时tinker就发挥作用了,它可以通过命名空间+类名::方法来调用静态的方法,也可以通过实例化一个控制器类对象,然后通过对象调用方式来触发方法。使用tinkerphp artisan tinker这时候会进入一个可输入的页面,在这个页面中可以输入自己想要调试的信息比如这个,是使用了faker的填充...原创 2021-09-17 08:35:48 · 273 阅读 · 0 评论 -
根据用户访问的路由判断有无权限访问
首先,我使用的是用户角色权限控制包 Laravel-permissio,关于怎么样设置权限,请看地址在权限设置好后,需要去验证某个用户有没有权限访问某个路由,就要去设置一个中间件,生成中间件php artisan make:middleware CheckPermission在中间件里面写入//验证用户是否具有请求权限 $user = auth('api')->user(); if (!$user->can($request->route(原创 2021-09-16 18:08:31 · 541 阅读 · 0 评论 -
用户角色权限控制包 Laravel-permissio
用户角色权限控制包一般我们要写curb控制的时候,是非常繁多的事,所以,就产生了一个用户角色权限控制包此软件包允许我管理数据库中的用户权限和角色通过composer安装composer require spatie/laravel-permission安装完成后,这个扩展会提供生成迁移文件的命令生成数据库迁移文件:php artisan vendor:publish–provider=“Spatie\Permission\PermissionServiceProvider” --tag=原创 2021-09-16 17:35:04 · 615 阅读 · 0 评论 -
laravel消息队列守护进程
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2021-09-13 23:03:40 · 970 阅读 · 0 评论 -
常见状态码
2xx 请求成功,表示成功处理了请求的状态代码3xx 请求被重定向,表示要完成请求,需要进一步操作。通常,这些状态代码用来重定向4xx 请求错误,这些状态代码表示请求可能出错,妨碍了服务器的处理5xx 服务器错误,这些状态码表示服务器在尝试处理请求时发生内部错误。这些错误可能是服务器本身的错误,而不是请求出错状态码说明200(成功)服务器已成功处理了请求201(已创建)请求成功并且服务器创建了新的资源204(无内容)服务器成功处理了请求,但没有返回任何内容.原创 2021-09-11 13:16:31 · 188 阅读 · 0 评论 -
laravel实现订单列表
首先,需要创建一个订单表在创建模型的时候再创建数据库迁移文件php artisan make:model Order -m完善数据库字段public function up() { Schema::create('orders', function (Blueprint $table) { $table->id(); $table->integer('user_id')->comment('下单的用户');原创 2021-09-11 13:13:35 · 661 阅读 · 0 评论 -
接入阿里云OSS
一般在开发中,是不会把文件资源放到自己的服务器上,因为,服务器上的资源比较贵,而且在上传文件中会大量占用服务器资源,所以,一般都是把文件上传到第三方平台。我这里使用的是阿里云OSS,因为他这个安全可靠,而且,价格也相对便宜,是一个不错的选择首先,去阿里云找到对象存储OSS,首次打开会提示你让你开通,直接开通就好了开通成功后,会有这个页面然后新建一个Bucket注:如果你使用的也是阿里云,最好选和你服务器一样的地区,那样,会帮你节约流量和资源。如果,一般的读写权限选公共读新建成功后,会有这原创 2021-09-09 23:09:13 · 1818 阅读 · 0 评论 -
请求API--多版本请求
多版本请求因为我们不是在 URL 里面对 API 进行版本控制,所以我们需要定义一个 Accept 头信息来请求我们的特定版本。header 的格式是这样的Accept: application/vnd.YOUR_SUBTYPE.v1+jsonvnd对应的是.env中的API_STANDARDS_TREEYOUR_SUBTYPE对应的是API_SUBTYPEv1对应的是API版本号例如:来看看两个版本请求的数据是否一致v1版本的:v2版本的:看,数据请求都是不一样的,所以原创 2021-09-06 23:44:08 · 188 阅读 · 0 评论 -
dingo中的内部调用
内部调用这个包的主要用途就是在 API 内部执行请求。它允许你在可用的 API 基础上构建你的应用。内部请求也可以返回原始数据,而不是原始响应对象,这意味着你可以获得与之相关的所有语法糖。简单点就是说,可以获取内部和使用内部的东西,比如,可以使用内部已定义好的路由要使用内部调用,就必须去构建一个分发器实例来发起内部请求$dispatcher = app('Dingo\Api\Dispatcher');然后就可以发起内部请求了。如:我调用了一个语句定义的路由//分发器 $dis原创 2021-09-06 23:32:03 · 155 阅读 · 0 评论 -
dingo API中的访问节流限制
访问节流限制节流限速(throttling) 允许你限制客户端给定时间的访问次数。限制和过期时间是在限速器里定义的。默认有两个限速器,验证通过限速器和未验证限速器。访问节流限制访问节流限制要为路由或路由组启用节流限制,你必须启用 api.throttle 中间件。一旦启用了节流限制,你必须已经配置过了一些限制或配置过了具体的路由限制。$api->version('v1', ['middleware' => 'api.throttle'], function ($api)原创 2021-09-06 22:43:36 · 198 阅读 · 0 评论 -
在laravel中使用jwt
jwt它的两大使用场景是:认证和数据交换安装及基础配置使用 composer 安装composer require tymon/jwt-auth在安装完成后,会生成这样一个目录进行一些配置–只对laravel5.4以下的版本这里值得注意的是,有些文档会说要添加Tymon\JWTAuth\Providers\LaravelServiceProvider::class ,这只在 Laravel 5.4及以下版本是必要的,更新的 Laravel 版本无需添加。发布配置文件//这条命令会在原创 2021-09-06 22:11:31 · 1738 阅读 · 0 评论 -
什么是JWT
TOKENtoken 是一串字符串,通常因为作为鉴权凭据,最常用的使用场景是 API 鉴权。API 鉴权API鉴权的方式有以下几种cookie + session和平常 web 登陆一样的鉴权方式HTTP Basic将账号和密码拼接然后 base64 编码加到 header头中。很显然,因为账号和密码几乎是『明文』传输的,而且每次请求都传,安全性可想而知。所以,这种方式是好少使用的HTTP Digest将账号和密码加上其他一些信息拼接然后取摘要加到 heade转载 2021-09-05 16:29:29 · 258 阅读 · 0 评论 -
Dingoapi的使用
安装Dingo 能为Laravel提供一整套包括从路由,到认证的RESTful API开发工具Dingoapi的安装命令composer require dingo/api有时候会有内存限制,同时内存不足,就可以使用临时提高内存命令COMPOSRT MEMORY_LIMIT=-1由于在laravel安装的插件都会放到vendor目录中,而且这个目录是对外不可见的,所以,需要使用命令将API的配置文件发布到config下php artisan vendor:publish --provide原创 2021-09-05 11:28:21 · 2078 阅读 · 0 评论 -
laravel学习笔记--模型事件
在使用模型的时候,会触发模型事件,其中允许挂接到模型生命周期的如下节点:retrieved 从数据库中查找数据时触发creatingcreatedupdatingupdatedsavingsaveddeletingdeletedrestoringrestored例如,我在Blog模型中去使用模型事件/** * 模型的 "booted" 方法 * * @return void */ protected static functi原创 2021-09-01 21:54:49 · 778 阅读 · 0 评论