phpstorm设置
设置等号对齐
Align consecutive assignments - 赋值语句对齐
Align constants - 常量对齐
Align key-value pairs - 数组 key-value 对齐
Align inline comments - 注释对齐
创建一个属于自己的composer包
初始化首先建立一个项目目录,然后在项目目录下执行 composer init
按照提示信息一步步填写
添加测试代码composer 项目到现在就已经是建立好了,接着我们创建一个 tests 目录,用来对项目代码进行测试。
安装 phpunit 测试包1composer require --dev phpunit/phpunit ^9
在 composer.json 文件中添加以下配置,用于自动加载文件
123456789 "autoload-dev": { "psr-4": { "Tests\\": "tests/" }, "files": [ "tests/common.php" ]}
composer.json 同级目录下添加 phpunit.xml 文件,配置如下
12345678910111213<phpunit colors="true" boots ...
项目代码演进
模块布局
项目中如果涉及多个模块,可以将其独立出来。然后每个模块中图上相关的布局。这样子做的好处是要将项目独立出来搞微服务时,模块与模块之间的耦合度会降低。如果是模块与模块之间存在调用关系,我们也可以再创建一个 forModule 文件夹,里面编写给其它模块调用的类,其它问题也可以类推。
DTO 的使用现在很多框架其实都有 request 请求实体对象来统一管理请求参数,但是在很多的代码编写中,可能会出现以下的代码
1234567891011class TestController{ public function test(Request $request) { $a = $request->input('a'); $b = $request->input('b'); $c = $request->input('c'); (new TestLogic())->doSomethink($a, $b, $c); ...
解决github图床图片无法显示问题
图片无法显示最近发现 github 的图床被墙了,导致无法展示。为了解决这个问题需要将旧的图片链接全部替换为 cdn 的形式。
CDNjsdelivr 作为国外的一家优秀的公共 CDN 服务提供商,我们可以借用它加速 Github 仓库文件的访问。
1https://cdn.jsdelivr.net/gh/githubusername/reponame@branchname/foldername/subfolder
其中:
gh 表示来自 GitHub 的仓库
githubusername/reponame 表示用户和仓库名
branchname 是仓库的分支名
foldername/subfolder 是仓库下面的文件夹名
picGo 工具基本上使用 github 作为图床都离不开 picGo 这个图片工具,为了更方便的获取到 cdn 后的图片链接,我们可以给它添加一个自定义的域名。
这里省略了仓库分支名,这样子我们就可以快乐的写文章了。
docker-remote-api使用
为什么使用 docker remote api?在使用 docker 的 sdk 进行开发时,我是在本地进行开发的,然后 docker 环境在虚拟机中,然后导致我现在写好代码进行测试都要进行代码上传,导致开发体验极差,所以没有使用 docker remote api 解决这个痛点。(这里使用虚拟机本地文件映射也行,不过 VMware 映射有点烦琐,就没有使用这种方式了)
流程
查看是否打开了 docker 服务
1systemctl status docker
如果开启服务了需要关闭服务,不然 docker 会检测到重复启动。
1systemctl stop docker
3.开始 remote api
1dockerd -H=0.0.0.0:2375 -H unix:///var/run/docker.sock
实践我这里使用的是 go 的 docker/client 包,所以要在环境变量中配置 DOCKER_HOST
1DOCKER_HOST=http://192.168.3.121:4443
具体的 docker go sdk 可以在 ...
php-解惑篇
php 的 ltrim 函数为什么会乱码?场景在 laravel 论坛中发现有人提出了这个问题 ltrim('你好世界', '你好'),结果返回了乱码数据,然后不知道是怎么产生乱码的。
问题刨析php 在官网教程中明显说明涉及中文的操作都要使用 mb_ 前缀函数,这里其实是多字节编码导致的。 php 默认处理的是 ascii 码,然后中文的话默认都是多字节,所以使用 ltrim 时就会出现乱码问题。
12345678910111213141516171819202122232425<?php// 字符串转ascii码function str_to_ascii($str): string{ $str=mb_convert_encoding($str,'utf-8'); $change_after=''; for($i=0, $iMax = strlen($str); $i< $iMax; $i++){ $temp_str=dechex(ord($str[ ...
nginx配置文件
location 中 root 与 alias 的区别场景配置 nginx 后端访问路径时,发现无法将静态文件识别出来。
使用 root 配置方式:
1234location /api { root /root/server/public; try_files $uri $uri/ /index.php?$query_string;}
使用 alias 配置方式:
1234location /api { alias /root/server/public; try_files $uri $uri/ /index.php?$query_string;}
问题刨析root 与 alias 的区别在于带不带上 /api, 使用 root 就相当于 $uri = /root/server/public/api, 然后 alias 就是 $uri = /root/server/public。
总 ...
git小故事(持续更新)
checkout 远端分支指定问题场景使用 git checkout -b dev-v2 origin/dev 拉取新的本地分支,然后 git pull 操作
隐患当两个习惯不一样的程序员进行协作的时候,有一定机会他帮你解决问题,来到你的环境 git pull 一下,神奇的事情发生了。你发现更新了不属于自己的代码下来了,然而你一直使用 git pull origin dev-v2 命令未曾遇到过,然后一头雾水,为什么会更新了别人的代码?
最后我们互相对望,相视而笑。(互相认为对方是煞笔 [狗头])
问题剖析这里面其实就是远端分支在作怪,使用 git checkout -b dev-v2 origin/dev 命令会默认执行了 git branch --set-upstream-to=origin/dev , 然后你的远端分支就是 origin/dev 了。我们可以使用 git branch -vv 来查看相关远端分支。
解决方法有两种:
重新设置新的远端分支
12git branch -u origin/dev-v2git branch --set-upstream-to=or ...