自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

IMJCW的博客

小孩子的心思像星空,看的见却看不懂。

  • 博客(58)
  • 收藏
  • 关注

原创 Laravel/Lumen生成PDF

前言之前的项目中,涉及一个生成 PDF 的需求,当时使用的框架是 Lumen。调研原本是想用官方网站上可以看到的 PDF 扩展的,发现使用之后有水印,直接放弃。(传送门 好像已经不能打开了)之后考虑了一下,如果能像浏览器一样,将网页直接转换为 PDF,那该多好,省时省力。搜索了一下,发现还蛮多。dompdf 传送门HTML2FPDF 传送门mpdf 传送门但适合这个项目的都需要自己再封装一下,为了方便,检索了一下基于 Laravel 的包。最终选定了 niklasravnsborg/

2020-11-04 15:49:14 1297 2

原创 Laravel config注意点

前言最近在对接 客服工单系统 时,组里建议新开项目。经过讨论,最终确定使用 Laravel 来开发。目前线上环境是用 k8s 进行部署管理的。同时,每次发版,会拉取最新的代码,然后打包到容器中。这种情况下,方便了我们使用 Laravel 的一些特性,比如:php artisan config:cache、php artisan route:cache 等。这样可以减少文件IO,提升系统响应。问题有个新问题产生了。就是有的地方获取不到配置。原因就是:php artisan config:c

2020-11-03 13:25:57 582

原创 Git回滚笔记

前言有时候,我们开发的一些功能不会上线,或者有问题,需要回滚代码。当有多人合作的时候,可能造成回滚的代码“重生”,这是操作不当造成的。我们需要做一些操作避免这些问题。本地回滚通过 log 获取回滚的 commit idgit log通过 reset 命令回滚代码git reset --hard {commit-id}回滚远程本地回滚 操作完成之后,将代码推送到远程(强推)git push origin {branch-name}本地分支重新同步远程代码多人合作中,如果某个同事

2020-10-26 10:38:59 253

原创 CAS单点登录流程梳理

前言新的项目中,需要对接单点登录,于是了解了一下 CAS 的登录流程。必看流程图先上一张图(图片来源网络)登录按照流程图,前端需要在初次进页面的时候,请求服务器获取鉴权。服务端发现这个用户没有相关凭证的时候,可以返回相应的状态码告知前端需要登录。前端跳转到 https://*.*/cas/login?service=http://*.* 进行登录。登录完成之后, CAS 会返回给前端一个 ticket,例如: http://*.*?ticket=ST-1212这时候,重新进入的前端页面,

2020-10-22 15:52:08 1447

原创 499问题查询解决

本文记录了我从遇到 499 问题,到解决的全过程。如果有小伙伴比较急,需要知道问题可能出现在哪里,请直接看 解决思路 一栏随着公司的发展,系统也越来越健全。近期使用了阿里云的 sls 服务来分析 nginx 系统日志,并设立了告警功能。各种平时注意不到的异常情况发生了。系统环境经典的 LNMP什么是 499解释是:client has closed connection这很有可能是因为服务器端处理的时间过长,客户端“不耐烦”了。解决思路先考虑程序是否有问题,定位某个接口,做详细分析。.

2020-10-22 14:02:02 1088

原创 Promise原理分析

前言最近讨论到了 Promise,此前知道也使用过它,但是对于其原理却不甚了解。于是翻了翻 MDN 上的文档,又找了几篇文章看了看,研究了研究。最终,自己尝试了一番,对于其原理也有所了解。Promise的使用先回顾一下 Promise 的使用。这里只是简单的调用,如果需要系统学习,还是移步 MDN 上的文档。new Promise((resolve) => { setTimeout(() => { console.log(1) resolve

2020-10-21 09:06:45 479

原创 ES6对象的合并

前言有时候,我们需要将传进来的对象与默认对象进行合并。在使用 ES5 的时候,经常需要自己写一个方法专门做这样的事情。而在 ES6 中,可以使用 Object.assign 方法,更加便利了。语法Object.assign(target, …sources)返回值合并之后的对象编码运行const object1 = { a:1, b:2, c:3}const object2 = { c:4, d:5}const object_merge

2020-10-20 08:52:43 1890

原创 GuzzleHttp Exception cURL error 60: SSL certificate problem: unable to get local

前言有一位同事在做本地开发的时候遇到了如下报错:GuzzleHttp Exception cURL error 60: SSL certificate problem: unable to get local开发环境:PHP7.2.1Win7phpstudy终是在上网找到了解决方案,但不知其所以然。问题所在GuzzleHttp 在初始化配置时,默认 verify = true。// FILE: guzzlehttp/guzzle/src/Client.php/** * Conf

2020-10-19 14:08:11 2937

原创 ES6中箭头函数和普通函数的区别

前言最近在看 ES6 相关的文档,当讲解到箭头函数的时候,说了三个与普通函数的不同点,这里记录一番。不同点箭头函数的 this 指向定义时所在的对象先来个普通函数的例子:var user = { name: 'demo', getInfo: function () { setTimeout(function () { console.log(this) }, 200) }}再来一个箭头函数的例子:var us

2020-10-16 10:55:15 723

原创 win10安装docker踩过的坑

Enable-MobyLinuxRequiredService1, Open “Window Security”2, Open “App & Browser control”3, Click “Exploit protection settings” at the bottom4, Switch to “Program settings” tab5, Locate “C:\WINDOWS\System32\vmcompute.exe” in the list and expand it6

2020-10-13 09:00:32 1035

原创 Vue-router 响应路由参数变化

前言最近用 vue 开发了一个数据展示的项目,在开发过程中,遇到了检测路由参数变化的问题。路由参数变化具体情况如下:有一个商品数据展示页,根据商品ID的不同,展示不同的数据。获取商品数据是在 mounted 或者 created 方法里做的。当使用了 vue-router 的 push 之后,mounted 和 created 方法没有被再次执行。因此,我们需要在路由参数变化之后,重新获取数据渲染。监听 $route 的变化在使用 vue-router 的 push 之后,$route

2020-10-12 09:07:34 1217

原创 Ubuntu安装phpize

前言最近在看 sphinx,想要在机器上安装一下试试的,尴尬来了。因为当时为了省事,安装 php 的时候直接使用的是 apt-get 做的,找 phpize 的时候,怎么找都找不到。还记得在看 sphinx,人家介绍安装的时候说,PHP 必须是要编译安装的,是因为要用到 phpize,事后证明并不是 apt-get 安装的 php 没有 phpize。我的环境Ubuntu 14.04PHP 5.5.9 (apt-get 安装)当前处于 root 用户特别说明:为了减少不需要的扩展,我的

2020-10-10 09:51:29 1866

原创 v-charts的初次体验

前言最近做一个小项目,用到了图表,由于前端是基于 vue 编写的,自然而然是要用 vue 相关的扩展了。说句实话,vue 的生态还是蛮不错的,最终选定是用 v-charts 来实现相关功能。v-charts相关github:v-charts文档:v-charts使用方式直接看文档吧折线图使用直线<template> <ve-line :data="chartData" :extend="extend"></ve-line></templat

2020-10-09 17:44:52 365

原创 PDO 绑定IN()语句的Array变量

前言自己琢磨着写了一个小框架使使。写完了之后,开始写 demo 的时候遇到了 PDO 绑定 IN 语句的问题。问题原本想要在 prepare 语句中写一个变量,再 bindParam 这个变量,当然这个变量的值是一个数组,PDO 的扩展类会自动处理的。然而在处理方式上让我止步不前了。解决网上有几种解决方案,一个是直接拼凑 SQL 语句,这与我的期望不符。第二个就...

2018-03-13 15:25:23 2894

原创 DECIAML字段字节计算

前言最近在看《深入浅出MySQL》一书,看到了数值类型那一节。里面介绍了一些常用字段的相关信息,如字节长度、最大值、最小值等。当看到 DECIMAL 字段时,它的字节数是 M+2,这个让我很不解,是为什么?查阅+理解DECIAML 与 FLOAT 和 DOUBLE 的存储方式不同。FLOAT 和 DOUBLE 是用二进制存储数据的,所以会有部分精度问题。DECIAML ...

2018-03-07 16:10:45 899

原创 字符串字符分割和驼峰形式的转换

前言看到了 Phalcon 的 Model 用法,想在自己的框架里实现,便稍微研究了一番,原理还是蛮简单的。Phalcon 提供了三种方法 findBy、findFirstBy、countBy,它使用魔术方法 __callStatic 来解析用户调用的方法。例如:用户调用 findFirstByUserMobile 方法,Phalcon 会将其分割成 findFirstBy 和 Use...

2018-02-24 09:00:32 1991

原创 PHP SESSION 自定义会话管理器

前言在遇到了 SESSION 混乱的问题后,突然对自定义会话管理器有了兴趣,于是便研究实现了一番。分析根据PHP官网的说明,实现方式有两种,这里准备用继承类的方式做,同时将 SESSION 存储于 Memcache 中。实现首先先要写一个继承于 SessionHandlerInterface 的类。class MemcachedHanlder implement

2018-02-05 14:16:37 230

原创 Phalcon只更新改变的字段

之前官网做了一次改版,运行一年多的时间,状态良好。在性能和抗压程度上都有了比较大的提升。然而,在对接了 TMS(第三方配送系统) 和电子发票之后,会经常发生订单状态异常的情况。问题经过老大和慧哥的分析(我参与了问题的解决,未参与分析),流程如下:配送员在 TMS 操作订单完成(完成中);开电子发票的脚本获取了订单的信息;TMS 更新完成,订单状态发生改变;开电子发票的脚本重新更新了订单

2018-02-01 17:15:09 2306

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除