Docker

Docker networks aliases 不生效的解决方法

背景 我本地开发用的 php 和 nginx 都部署在 docker 中,宿主机为 MacOS 宿主机中 hosts 一个域名 127.0.0.1 abc.test,再把 nginx 容器的 80 端口映射出来。就能正常通过 abc.test 访问到 nginx 再转发给 php 看起来很完美,直到 —— 我需要在 php 中访问 abc.test 这个站点的时候 当我在 php 容器中需要解析这

Yii2中手动使用内置验证码组件

原文:yii2使用验证码组件,有所修改、补充 yii2自带的例子里面有一个关于验证码的使用例子,但是本篇文章讨论的是用另外一种方式手动生成和验证验证码。 生成验证码 在要使用验证码的Controller里面实现actions方法: class TestController extends Controller{ public function actions(){ return [ ‘captch

Yii2-GridView添加导出功能

首先我们需要用Composer安装一个导出组件:kartik-v/yii2-export 这个组件依赖一个PDF导出组件kartik-v/yii2-mpdf,100多M,所以安装可能很慢,需要耐心等候 不过新版本好像默认不依赖此PDF组件了 安装完毕后,打开config/web.php,给$config变量添加一个成员: ‘modules’ => [ ‘gridview’ => [ ‘

浅谈PHP中打开文件(fopen)的一些坑

准备自己实现一个基于文件的简单缓存类,用于一些小外包项目。原本只是打算按照特定的JSON格式进行存储,然后用很方便的两个函数 file_get_content 和 file_put_content 进行读写 后来想给缓存类加个自增/减的方法,用来做简单的统计之类。如果考虑到瞬间并发情况,为了防止两个请求互相干扰,就必须得上文件锁了 首先是设置缓存,这个没啥难度: 首先一个$h = fopen($p

Yii2-GridView自定义活动列ActionColumn

本文同时收录于 超能小紫的Yii2学习笔记 用gii生成的CRUD非常方便,index视图自带的数据列表也很强大,最右侧默认还带有 查看详情、修改 和 删除 三大功能按钮 但是这三个按钮不一定够用。例如我们做文章列表时,可能还会需要 显示(发布)、隐藏(作为草稿) 之类的按钮,这时候我们就需要自定义活动列了 准备工作 首先我们跟着命名空间(yii\grid\ActionColumn)到 vendo

Yii2-GridView自定义数据列

本文同时收录于 超能小紫的Yii2学习笔记 用gii生成Model和CRUD之后,基本的增删查改和列表页都有了 但在很多时候,默认生成的列表所展示的 数据列 并不一定是我们想展示的 修改所展示的数据列 打开视图层目录,找到刚生成出来的index.php,阅读其代码 稍有常识的人都能看出, 控制数据列显示的就是GridView::widget方法的参数数组中的columns键 它大概长这样: ‘co

Yii2-GridView给关联字段添加搜索和排序功能

本文同时收录于 超能小紫的Yii2学习笔记 需求 一个试用申请平台,需要在试用申请列表(Application)内展示申请人(User)姓名 准备工作 用gii生成Model、CRUD 如果你不知道什么是gii,请不要跟别人说你会用yii 数据库结构 申请表application 含有字段 user_id 与 用户表user 的 id 字段一对一关联 第一步 给Application模型添加如下方

PHP注释的艺术——phpDoc规范

用过IDE或看过其他源码的小伙伴们应该都见过类似下面这样的注释 /** * 递归获取所有游戏分类 * @param int $id * @return array */ 看得多了就大概知道了一些规律。为了使自己的代码更加规zhuang范bi,也开始有样学样地写着这些注释 其实这种注释格式是有自己的名字的,它就叫—— PHPDOC PHPDoc 是一个 PHP 版的 Javadoc。它是一种注释 P

PHP开发中涉及到emoji表情的几种处理方法

最近几个月做微信开发比较多,存储微信昵称必不可少 可这万恶的微信支持emoji表情做昵称,这就有点蛋疼了 一般Mysql表设计时,都是用UTF8字符集的。把带有emoji的昵称字段往里面insert一下就没了,整个字段变成了空字符串。这是怎么回事呢? 原来是因为Mysql的utf8字符集是3字节的,而emoji是4字节,这样整个昵称就无法存储了。这要怎么办呢?我来介绍几种方法 1、使用utf8mb

Windows下nginx+fastcgi+php的并发阻塞问题

接到一个需求,两个项目之间需要以接口形式通讯。我心想curl轻松解决,Easy! 啪嗒啪嗒啪嗒……代码撸完了,本地测试一下 浏览器一直转圈圈直到超时…… Why!? 没有任何错误提示信息,日志也没有任何新记录 用POSTMAN调试了一下刚写出的接口,没问题啊? 再试一次结果依旧,重启环境后再试也依旧 经过一番测试,我怀疑是不是我本地环境无法并发? 我访问项目A是一个请求,项目A访问项目B的接口则是