Atwood定律:凡是能用JavaScript写出来的,最终都会用JavaScript写出来

 

为什么 PDO 无法捕获异常

场景:有些复杂的原生SQL语句查询,出错了没有报错:try{ $sth = $dbh->prepare($sql); $sth->execute(); $articles = $sth->fetchAll(\PDO::FETCH_ASSOC); } catch (\PDOException $e){ return $this->json($e->getMessage()); } 分析:PDO 提供了三种不同的错误处理模式,以满足不同风格的应用开发:PDO::ERRMODE_SILENT此为默认模式。 PDO 将只简单地设置错误码,可使用 PDO::
ngtwewy 2020-03-29    PHP   

PHP 一次查询生成二维 Json

场景:一次查询,返回给前端一个列表,需要在列表的每一项中加一个相关子对象。比如,返回给前端一个文章列表,列表中的每一项中,都要有一个文章作者的信息对象,如下:{ "count": "548", "list": [ { "id": "620", "user_id": "1", "category_id": "17", "name": "买藕了", "thumbnail": "", "content": "一斤藕半斤都是空心的,以后不买了...", "comment_counter": "0", "like_counte
ngtwewy 2020-03-29    PHP   

Apache 虚拟主机中设置 PHP 环境变量,open_basedir 相关

知识回顾:open_basedir是php.ini中的一个配置选项它可将用户访问文件的活动范围限制在指定的区域,假设open_basedir=/home/wwwroot/home/web1/:/tmp/,那么通过web1访问服务器的用户就无法获取服务器上除了/home/wwwroot/home/web1/和/tmp/这两个目录以外的文件。注意用open_basedir指定的限制实际上是前缀,而不是目录名。举例来说: 若"open_basedir = /dir/user", 那么目录 "/dir/user" 和 "/dir/user1"都是可以访问的。所以如果要将访问限制在仅为指定的目录,请用斜
ngtwewy 2020-03-25    Apache   

CentOS 8 Apache 使用 ModSecurity 防止 DDOS

问题:1,CentOS 7 中的源中默认有 mod_evasive,而 CentOS 8 中没找到 mod_evasive。2,Apache 官方文档中,关于 Denial of Service (DoS) attacks 没有类似 mod_evasive 的功能。官方建议限制 IP 连接数相关的方法,最好使用操作系统上的防火墙。http://httpd.apache.org/docs/current/misc/security_tips.html3,Apache 2.4以上版本,新增了mod_ratelimit,针对请求限流,不能针对IP。也不能屏蔽 IPhttp://httpd.apach
ngtwewy 2020-03-22    Apache   

CentOS 8 安装 MySQL 5.7 或 MySQL 8

CentOS 8 默认是可以安装 MySQL 8。https://dev.mysql.com/downloads/repo/yum/https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/第一步,添加源文件手动添加文件/etc/yum.repos.d/mysql-community.repo,然后加入下面内容到文件里。安装 MySQL 8.0[mysql80-community] name=MySQL 8.0 Community Server baseurl=http://repo.mysql.com/yum/mysql-8.0-co
ngtwewy 2020-03-20    CentOS   

CentOS 8 源 yum/dnf 源添加、删除和优化

CentOS 由于很追求稳定性,所以官方源中自带的软件不多,因而需要一些第三方源,比如 EPEL、ATrpms、ELRepo、Nux Dextop、RepoForge 等。根据上面提到的软件安装原则,为了尽 可能保证系统的稳定性,此处大型第三方源只添加 EPEL 源、Nux Dextop 和 ELRepo 源。执行yum源更新命令 yum repolist #查看已安装的源 yum makecache #更新元数据 删除yum中的源1) 删除库配置文件 以root权限运行下面的命令:cd /etc/yum.repos.d/ ls #结果如下CentOS-Base.repo epel.rep
ngtwewy 2020-03-20    CentOS   

移动端UI设计规范「小白干货」

从事UI设计,一直没看到完整版的UI设计规范学习资料,特此总结整理方便大家学习交流~一,关于UI规范的理解很多新人在开始做移动端UI设计的时候,往往对界面的一些尺寸规范不是十分清楚,对做UI设计的基础概念也没有清晰的认识,很多时候都是凭借自己的感觉和经验去绘制界面,心里并没有一个清晰的概念,导致做出来的页面总是不那么尽如人意。本文整理汇总了一些界面设计(iOS系统)中常用的一些尺寸规范和方法,如控件间距、适配、标注、切图等,设计师在设计时并不一定要严格遵守,但对这些规范应有所了解,并融会贯通。二,本文从八个方面全面阐述 UI 规范01.UI基础概念02.UI元素设计规范03.UI版式设计规范0
ngtwewy 2020-03-20    UI 设计   

CentOS 8 安装 Apache 和 PHP

一,安装 Apachesudo dnf install httpd sudo dnf install mod_security mod_ssl 安装完成后,启用并启动Apache服务:sudo systemctl enable httpd sudo systemctl restart httpd 配置 Apache ModSecurity# cd /etc/httpd # git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git # mv owasp-modsecurity-crs modsecurity-c
ngtwewy 2020-03-20    CentOS   

在 CentOS 8 上使用 DNF 管理软件包

DNF代表Dandified YUM是基于RPM的Linux发行版的软件包管理器。它用于在Fedora / RHEL / CentOS操作系统中安装,更新和删除软件包。 它是Fedora 22,CentOS8和RHEL8的默认软件包管理器。 DNF是YUM的下一代版本,并打算在基于RPM的系统中替代YUM。 DNF功能强大且具有健壮的特征。DNF使维护软件包组变得容易,并且能够自动解决依赖性问题。已安装包的列表dnf list installed 或者dnf list available 查找与安装软件包dnf search httpd 安装httpd包命令:dnf install ht
ngtwewy 2020-03-19    CentOS   

解决 SSH 的 Write failed: Broken pipe 问题

一,问题描述在使用SSH连接远程服务器的时候,如果长时间不操作,再次进入 Terminal 时就会有卡死一段时间没有响应。等待一段时间以后,会发现以下错误提示:Write failed: Broken pipe这表示连接管道已经断开,所以只能重进行连接。二,解决方法方法一:客户端配置在客户端的 ~/.ssh/config文件(如不存在请自行创建)中添加下面内容:ServerAliveInterval 60方法二:服务器端配置在服务器的 /etc/ssh/sshd_config 中添加如下的配置:ClientAliveInterval 60方法三:临时SSH命令配置如果只是临时性的连接(即只作用
ngtwewy 2020-03-19    macOS   

Webpack file-loader 升级后 src= "[object Module]" 的解决方法

Webpack file-loader 升级后 src= "[object Module]" 的解决方法,当 file-loader 的版本是 4.3.0 及以上,则需要在 webpack.config.js 中手动配置属性 esModule 。{ test: /\.(jpg|jpeg|png|gif|svg)$/, loader: "file-loader", options: { esModule: false, // 默认值是 true,需要手动改成 false } } esModuleType: Boolean Default: trueBy de
ngtwewy 2020-03-18    Webpack   

CSS 实现三角形

将一个div的宽度和高度设置为0,然后设置边框样式.triangle{ width: 0; height: 0; border-top: 50px solid black; border-right: 50px solid red; border-bottom: 50px solid green; border-left: 50px solid blue; } 将一个div的border都设置成50px粗,并且不同颜色,结果如下图所示:把边框宽度设置成50px,计算机处理时,在边框交接处,一边占用一半的面积。将左右下边框设置成transparent,就可以画出一个三角形.tri
ngtwewy 2020-03-17    CSS   

怎么画流程图

1,为什么要画流程图很多人拿到需求就火急火燎的开始画原型,然后画着画着觉得有些地方没有考虑到,又回头去改,如果在画原型之前,你能将自己的业务流程想好,用户的操作流程想好,页面跳转想清楚,你就能少做很多无用功,达到事半功倍的效果。2,什么是流程图流程图是表示算法、工作流或流程的一种框图表示,它以不同类型的框代表不同种类的步骤,每两个步骤之间则以箭头连接。这种表示方法便于说明解决已知问题的方法。流程图在分析、设计、记录及操控许多领域的流程或程序都有广泛应用。3,流程图常用元素定义4,一般流程图有三种结构:顺序结构、选择结构、循环结构5,常用的三种流程图产品中设计的流程图主要有三种,业务路程图(泳道
ngtwewy 2020-03-13    数据结构和算法   

阿里专家:一文教会你如何写复杂业务代码

写好代码,阿里专家沉淀了一套“如何写复杂业务代码”的方法论,在此分享给大家,相信同样的方法论可以复制到大部分复杂业务场景。一文教会你如何写复杂业务代码了解我的人都知道,我一直在致力于应用架构和代码复杂度的治理。这两天在看零售通商品域的代码。面对零售通如此复杂的业务场景,如何在架构和代码层面进行应对,是一个新课题。针对该命题,我进行了比较细致的思考和研究。结合实际的业务场景,我沉淀了一套“如何写复杂业务代码”的方法论,在此分享给大家。我相信,同样的方法论可以复制到大部分复杂业务场景。一个复杂业务的处理过程业务背景简单的介绍下业务背景,零售通是给线下小店供货的B2B模式,我们希望通过数字化重构传统
ngtwewy 2020-03-11    数据结构和算法   

使用 Photoshop 创建矢量图标库 Iconfont

如何不用 AdobeIllustrator做字体图标,这是个问题。1,首先使用 Photoshop 的矢量工具和布尔运算绘制闭合的图形。2,复制图层面板中的 SVG 样式,保存为svg文件,上传到 阿里巴巴 iconfont.cn。3,然后 按照 https://www.iconfont.cn/help/detail?helptype=code 就可以使用了。@font-face { font-family: 'iconfont'; /* project id 1557805 */ src: url('//at.alicdn.com/t/font_1557805_4caamtj3u
ngtwewy 2020-03-09    UI 设计