发生了什么周末无事,想装上 PHP8 体验一把新版本的特性,找了一个 Yii2 写的老项目,结果运行 migration 初始化环境就遇到了问题,建表脚本直接报错。
Docker Compose 是一个容器编排的工具,通过编写一个简单的 yml 配置文件来定义应用程序所需要的所有服务(如 web 应用的 lamp),然后通过一个简单的 docker-compose up 命令就可以标准化的创建所有容器并启动服...
快速排序是运用分治的方法,通过一趟遍历将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再用同样的方法对这两部分数据分别进行快速排序。
docker 容器编排可能更合适的是 Docker Compose 和 Kubernetes。日常开发,往往也不想要这么复杂,就丢一个容器里得了。
这一篇我们来看如何遍历二叉树。常用的三种遍历方式有“先序” “中序” “后序”。对于二次查找树来说,中序遍历刚好可以得到一个有序的结果(即排序)。三种遍历方式的定义如下
在了解二叉查找树之前,我们行了解一下树的概念。树由节点和层级关系组成,是一种非线性的数据结构。就像现实中树的叶子和枝干一样。树枝把树叶一片片连接起来,树叶就是节点,树枝就是路径。像这样
之前介绍过 “队列” 是一种特殊的线性表,这里再介绍另外一种特殊的线性表 “栈” 什么是栈 栈是一种后入先出的数据结构,它只能允许在列表的一端进行操作。允许操作的一端称为栈顶。 栈有两个基本操作,元素压入栈...
网上很多介绍都说他是“以数组的形式返回当前请求成功后的response的headers”,用console.log() 输出,发现它也像是数组。
使用 composer 安装私有 gitlab 仓库类库,会自动生成 .git 目录,这会导致该类库不能直接直接到 git 仓库。每次要手动删除该目录,于是就想使用 composer 的 scripts 功能自动删除。
这不是一篇技术文章,只是最近做代码重构的一些心得和想法。 要有坚定的目标 从某种程度上来说,重构是件费力不讨好的事,尤其是在业务驱动的团队,毕竟重构并不能带来直接、可量化的收益。 业务只看到功能能不能...
Postman 提供了一个强大的基于 Nodejs 的运行环境,允许开发人员在请求或集合中填加动态行为,如编写测试用例,动态参数,请求之前传递数据等。Postman 提供了两个事件来填加 Javascript 代码来实现特定行为。分...
下面是Centos7 默认的iptables-config 配置 {代码...}
Guzzle 介绍 Guzzle 是一款简单、易用的 PHP HTTP 客户端。 它可以快速的集成到 WEB 项目中,帮助我们非常方便的发送 HTTP 请求。 Guzzle 特点 接口简单 支持使用 curl,PHP streams,sockets等各种方式。 支持同步...
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 yo...
每个php扩展都包含一些非常公共的并且非常单调的结构和文件,这些文件对所有扩展来说都是通用的。当开始一个新扩展开发的时候,如果这些公共的结构已经存在,而不需要费力去复制每个文件的内容, 我们只需考虑填充...
前面两篇介绍了 Zephir ,从此可以开发自己的扩展了,可毕竟是通过转换而来,虽然很方便,可对于扩展还是一知半解,也无法判断其好坏,所以还是要了解下用原生的方法是怎么开发一个 PHP 扩展的。
基本语法Zephir 中,每个文件都必须有且只有一个类,每个类都必须有一个命名空间,目录结构必须与所使用的类和命名空间的名称相匹配,这一点和 PSR4 的约定一致,但是它是强制的。空间名和类名首字母大写,文件名...
Zephir 是一种中间语言,以接近 PHP 的语法来编写代码,然后转换编译成 PHP 扩展,旨在简化 PHP 扩展的创建和可维护性。利用编译来提高性能和资源消耗,又不需要关注内存管理等复杂操作。
创建 Github Page 一个多月了,发现百度索引量依然为0。利用百度自带的抓取诊断工具诊断发现,所有抓取记录都是失败,状态码为403。
Github Pages 是 Github 免费提供的静态网站生成器,你可以利用其创建个人、企业、项目网站。其提供静态页面托管服务和一个二级域名,也可以绑定独立域名。
沉淀,沉淀,沉淀