【PHP8体验】pdo_mysql 事务提交失败

2020-12-06
阅读 1 分钟
2.7k
发生了什么周末无事,想装上 PHP8 体验一把新版本的特性,找了一个 Yii2 写的老项目,结果运行 migration 初始化环境就遇到了问题,建表脚本直接报错。

【Docker】docker-compose 使用简介

2020-12-04
阅读 2 分钟
5.3k
Docker Compose 是一个容器编排的工具,通过编写一个简单的 yml 配置文件来定义应用程序所需要的所有服务(如 web 应用的 lamp),然后通过一个简单的 docker-compose up 命令就可以标准化的创建所有容器并启动服务。

【PHP 实现算法】快速排序的几种实现

2020-06-13
阅读 5 分钟
1.6k
快速排序是运用分治的方法,通过一趟遍历将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再用同样的方法对这两部分数据分别进行快速排序。

【docker】构建ssh+nginx+fpm镜像并通过supervisor实现开机自启动

2020-05-27
阅读 4 分钟
4.5k
docker 容器编排可能更合适的是 Docker Compose 和 Kubernetes。日常开发,往往也不想要这么复杂,就丢一个容器里得了。

【PHP 实现数据结构】遍历二叉查找树

2020-04-19
阅读 3 分钟
2.1k
这一篇我们来看如何遍历二叉树。常用的三种遍历方式有“先序” “中序” “后序”。对于二次查找树来说,中序遍历刚好可以得到一个有序的结果(即排序)。三种遍历方式的定义如下

【PHP 实现数据结构】二叉查找树

2020-04-12
阅读 3 分钟
2.6k
在了解二叉查找树之前,我们行了解一下树的概念。树由节点和层级关系组成,是一种非线性的数据结构。就像现实中树的叶子和枝干一样。树枝把树叶一片片连接起来,树叶就是节点,树枝就是路径。像这样

【PHP 实现数据结构】栈

2020-04-06
阅读 2 分钟
2.7k
之前介绍过 “队列” 是一种特殊的线性表,这里再介绍另外一种特殊的线性表 “栈” 什么是栈 栈是一种后入先出的数据结构,它只能允许在列表的一端进行操作。允许操作的一端称为栈顶。 栈有两个基本操作,元素压入栈和元素弹出栈,操作示例图。 代码实现 我们来实现上述两个基本操作,和实际应用中常用的其他几个操作。 push...

【Postman】pm.response.headers 对象探究

2020-04-03
阅读 1 分钟
3.1k
网上很多介绍都说他是“以数组的形式返回当前请求成功后的response的headers”,用console.log() 输出,发现它也像是数组。

PHP 删除非空目录

2020-04-01
阅读 2 分钟
2k
使用 composer 安装私有 gitlab 仓库类库,会自动生成 .git 目录,这会导致该类库不能直接直接到 git 仓库。每次要手动删除该目录,于是就想使用 composer 的 scripts 功能自动删除。

代码优化随想

2019-10-11
阅读 1 分钟
1.2k
这不是一篇技术文章,只是最近做代码重构的一些心得和想法。 要有坚定的目标 从某种程度上来说,重构是件费力不讨好的事,尤其是在业务驱动的团队,毕竟重构并不能带来直接、可量化的收益。 业务只看到功能能不能跑,不会管用什么姿势跑。很多时候也会发现,你的同事简简单单堆砌代码被表扬高效做的多,获得好的回报,而...

【Postman】API 接口测试

2019-08-17
阅读 2 分钟
3.1k
Postman 提供了一个强大的基于 Nodejs 的运行环境,允许开发人员在请求或集合中填加动态行为,如编写测试用例,动态参数,请求之前传递数据等。Postman 提供了两个事件来填加 Javascript 代码来实现特定行为。分别为1.pre-request script 在请求发送之前2.test script 在响应完成之后

Centos iptables-config 配置参数说明

2019-06-13
阅读 3 分钟
4.4k
下面是Centos7 默认的iptables-config 配置 {代码...}

【项目推荐】Guzzle - 简单易用的 PHP HTTP 客户端

2019-04-16
阅读 3 分钟
4.6k
Guzzle 介绍 Guzzle 是一款简单、易用的 PHP HTTP 客户端。 它可以快速的集成到 WEB 项目中,帮助我们非常方便的发送 HTTP 请求。 Guzzle 特点 接口简单 支持使用 curl,PHP streams,sockets等各种方式。 支持同步和异步请求 遵循 PSR7 规范,可以集成其他的符合 psr7 规范的类库,自定义处理逻辑 安装 使用 composer 安...

GDB 简介

2019-04-02
阅读 2 分钟
1.8k
Start your program, specifying anything that might affect its behavior. Make your program stop on specified conditions. Examine what has happened, when your program has stopped. Change things in your program, so you can experiment with correcting the effects of one bug and go on to learn about an...

【PHP 扩展开发】扩展生成器

2019-03-05
阅读 3 分钟
2.3k
每个php扩展都包含一些非常公共的并且非常单调的结构和文件,这些文件对所有扩展来说都是通用的。当开始一个新扩展开发的时候,如果这些公共的结构已经存在,而不需要费力去复制每个文件的内容, 我们只需考虑填充功能代码那心情一定会愉快很多。

【PHP 扩展开发】Hello World

2019-03-05
阅读 2 分钟
2.4k
前面两篇介绍了 Zephir ,从此可以开发自己的扩展了,可毕竟是通过转换而来,虽然很方便,可对于扩展还是一知半解,也无法判断其好坏,所以还是要了解下用原生的方法是怎么开发一个 PHP 扩展的。

【PHP 扩展开发】Zephir 基础篇

2019-03-01
阅读 2 分钟
2.4k
基本语法Zephir 中,每个文件都必须有且只有一个类,每个类都必须有一个命名空间,目录结构必须与所使用的类和命名空间的名称相匹配,这一点和 PSR4 的约定一致,但是它是强制的。空间名和类名首字母大写,文件名全部小写。

【PHP 扩展开发】Zephir 简介

2019-02-25
阅读 3 分钟
7.2k
Zephir 是一种中间语言,以接近 PHP 的语法来编写代码,然后转换编译成 PHP 扩展,旨在简化 PHP 扩展的创建和可维护性。利用编译来提高性能和资源消耗,又不需要关注内存管理等复杂操作。

【Github Pages】如何被百度收录

2019-02-18
阅读 1 分钟
5.8k
创建 Github Page 一个多月了,发现百度索引量依然为0。利用百度自带的抓取诊断工具诊断发现,所有抓取记录都是失败,状态码为403。

【Github Pages】徒手实现分页

2019-01-31
阅读 4 分钟
4k
Github Pages 是 Github 免费提供的静态网站生成器,你可以利用其创建个人、企业、项目网站。其提供静态页面托管服务和一个二级域名,也可以绑定独立域名。

PHP实现一个轻量级容器

2019-01-27
阅读 6 分钟
3.4k
什么是容器 在开发过程中,经常会用到的一个概念就是依赖注入。我们借助依懒注入来解耦代码,选择性的按需加载服务,而这些通常都是借助容器来实现。 容器实现对对象的统一管理,并且确保对象实例的唯一性 容器可以很轻易的找到有很多实现示例,如 PHP-DI 、 YII-DI 等各种实现,通常他们要么大而全,要么高度适配特定业...

Travis CI 实现自动备份Segmentfault文章到Github

2019-01-18
阅读 3 分钟
2.4k
上一篇简单介绍了 Travis CI, 这里再简单介绍一个应用,利用Travis CI的Cron Jobs功能,实现自动备份segmentfault文章到Github。

Travis CI 简介

2019-01-14
阅读 1 分钟
4.3k
什么是Travis CI Travis CI 是目前新兴的开源持续集成服务,它能帮助你在代码变化时自动构建、测试(当然你需求提供测试脚本)、部署。 它是一个在线工具,不需要额外部署,支持大部分主流语言,更重要的是对于开源项目它还免费。 如何使用 先决条件 To start using Travis CI, make sure you have:A GitHub account.Own...

【PHP 实现数据结构】链式队列

2019-01-05
阅读 2 分钟
2.1k
队列是一种“先进先出”的存储结构,是一种特殊的线性表,于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。通常队列可以分为顺序队列和链式队列两种实现,顺序队列顾名思义就是采用顺序存储,如以数组方式来实现,链式队列采用链式存储,如以上篇说到的单向链表来实现,

【PHP 实现数据结构】单向链表

2019-01-04
阅读 4 分钟
3.5k
单向链表(也叫单链表)是链表中最简单的一种形式,每个节点只包含一个元素和一个指针。它有一个表头,并且除了最后一个节点外,所有节点都有其后继节点。它的存储结构如下图所示

【PHP 高级特性】ArrayAccess 接口

2018-11-22
阅读 3 分钟
6.2k
php提供了6个常用的预定义接口,实现某些特定的能力。其中最最常用的就是 ArrayAccess 了,像 Laravel 这种流行的框架都用到了它。

通过唯一ID实现简单的日志跟踪实现

2018-10-14
阅读 4 分钟
3.7k
在实际项目中,通知我们需要记录一些日志,方便问题核查。但是日志多了就很容易混乱,请求,响应,执行中的日志无法对应,这时就需要为请求进行标记唯一ID来进行跟踪。

【nginx】记录nginx+php-fpm实现大文件下载排坑的过程

2018-08-01
阅读 3 分钟
4.1k
代码有详细的解释,也很清楚,但是在实际使用时还是小文件可以下载,大文件只能下载前半部分或者出现文件已损坏的情况。查看nginx日志发现如下报错

【Composer】如何创建并发布一个自己的包

2018-04-04
阅读 2 分钟
2.3k
上一篇【Composer】简单介绍 现在来说一说如何创建并发布一个自己的包,以这个简单的服务化类库 twinkle/twinkle-api 为例,也作个简单说明。 有哪些步骤 编写代码 编写composer.json文件,选择合适的包加载方式 github拖管代码 提交包到packagist 配置github hook自动更新 编写类库代码 作为一个使用composer的现代php程...

【Composer】简单介绍

2018-03-26
阅读 2 分钟
2.6k
Composer 是一个依赖管理工具,它允许你在项目中声明所有依赖的代码库,并且通过简单的命令安装它们。通常这些依赖库会安装在一个叫"vendor"的目录。