一份经过时间检验的 Laravel PHPUnit 测试经验分享

一份经过时间检验的 Laravel PHPUnit 测试经验分享 介绍作为开发者我们可能都有过这样的经历: Laravel v7 都已经发布了,而自己维护的项目仍然是公司祖传的 v5.3,迟迟不敢升级。 修复了一个注册功能的 bug,结果把登录功能搞崩了,直到用户反馈才知道。 新增功能或者修改代码都束手束脚,生怕对项目造成破坏性影响。而这些困境很大部分的原
阅读全文

多语言开发需要了解的国家语种代码标准

介绍在我们开发过程中; 或者在浏览网页过程中; 如果涉及到多语言; 我们会经常发现 `cn`; `zh` `zhHans` `zhCN` 、 `zhcn` 各种方式五花八门简直令人目瞪狗呆; 他们之间到底有什么区别? 又有什么关系? 这一切的一切; 到底是人性的扭曲? 还是道德的沦丧?
阅读全文

Docker 入门教程(九)Docker Compose

传统的本地环境一般是把 NGINX、MySQL、PHP 都在一台机器上安装好; 但是如果用于生产环境就非常不利于维护和扩展了; Docker 中推崇一个服务就是一个容器; 我们上篇文章使用的 Dockerfile 都是定义的单个容器服务的镜像; 那容器与容器之间的关系怎么定义呢? 前面我们讲网络的时候通过命令行实现了容器的互通; 那有木有一种像 Dockerfile 类似的方案用来记录容器之间的关系? 没错这就是今天要讲的 Docker Compose ;
阅读全文

Docker 入门教程(八)使用 Dockerfile 制作 Linux、NGINX、MySQL、PHP 镜像

上篇文章把 Dockerfile 的基本使用介绍了一遍; 我们接下来就用 Dockerfile 制作一套简单的环境; Linux我们这里以 Ubuntu 为示例; 默认的官方镜像比较基础有些地方不一定适合我们使用; 我们这里对 Ubuntu 做一些简单的修改; 创建一个 Ubuntu 目录; 我这里创建了两个文件; conf/sources.list```bashdeb http://mirrors.aliyun.com/ubuntu/
阅读全文

Docker 入门教程(七)Dockerfile

前面我们使用 `docker commit` 制作了一个自己的镜像; 但是这个主要是用于学习以及一些特殊的用途; 实际应用中一般不会通过这种方式制作镜像; 因为 `docker commit` 只是把变动的文件制作成了镜像; 比如之前文章中创建 test 镜像的时候; 记录的是创建的 `/test` 这个文件夹; 但是变动的过程无法记录; 没有办法追踪到我是通过 `mkdir /test` 这个命令创建的 `/test` 目录; 这样的话就非常不利于追踪历史
阅读全文

Docker 入门教程(六)网络 Network

端口映射默认容器在外部默认是不可访问的; 比如进入到容器里面才可以操作; 这对于提供网络请求的应用就不友好了; 比如说我们常见的 Nginx ; 如果想让容器可被访问; 这就需要使用 `P` 参数分配端口了; ```bashdocker run d P nginx```这里 Docker 给随机分配了一个端口个 `32768`; 我们通过浏览器访问刚这个端口就可以看到 Nginx 的欢迎页了; 如果是使用的各云服务器需要
阅读全文

Docker 入门教程(五)数据卷 Volumes

有些容器在运行的时候是会产生数据的; 这种容器就叫做有状态容器; 比如说 MySQL 容器; 我们在创建镜像的时候希望保留的是 MySQL 各种配置以及扩展; 并不想把 MySQL 的数据也打包到镜像中; 数据卷就是为此场景而生的; 数据卷分为两种类型: 1. 绑定挂载的 volume (bind mount volume)2. 受管理的 volume (managed volume) 绑定挂载的 volume (bind mount volume)
阅读全文

Docker 入门教程(四)仓库 Repository

Docker Hub仓库是用来存放发布镜像的地方; Docker 官方提供了仓库服务 ; 我们之前的文章中讲的 `docker pull` 拉取的镜像就是从 Docker Hub 仓库中拉取的; 要使用 Docker Hub 需要先注册一个账号; 然后在命令行中就可以登录了; ```bashdocker login```登录后就可以推送自己的镜像了; 这和 Github 的 Push 代码同样很像; 拉取镜像、启动容器、推送到仓库
阅读全文

Docker 入门教程(三)容器 Container

容器就是镜像的一个运行示例; 如果不理解的话可以先回到第一篇的概念文章复习下; 启动容器上篇文章已经拉取了 Ubuntu 镜像; 现在来启动一个容器; ```bashdocker run t i ubuntu /bin/bash````t` : 让容器分配一个伪终端 `i` : 让容器标准输入保持打开 这就进入到一个 Ubuntu 系统中了; 执行 `exit` 命令可以退出镜像; 如果不想退出容器让容器保持后台运行可以使用 `d` 参
阅读全文

Docker 入门教程(二)镜像 Image

联合文件系统镜像的基础是联合文件系统 (UnionFS) ; 这个联合文件系统我们可以简单的理解为把多个目录挂载到一个目录下; 举个栗子; 这里创建 A 和 B 以及 C 三个目录; A 目录下有 a.txt 文件和 z.txt 文件; B 目录下有 b.txt 文件和 z.txt 文件; C 目录下是空的; ```bash| A| | a.txt| ` z.txt| B| | b.txt| ` z.txt` C
阅读全文