我如何实现 Laravel-China 全自动系列文章发布

在早期 轻松部署 Laravel 应用 课程开始编写之前,就考虑到一个非常重要的问题:如何保证 Laravel-China 上发布的文章与 GitHub 仓库内的 Markdown 源文件保持同步?

March 22, 2019 · Wi1dcard

将 PHP 应用快速打包为 PHAR

humbug/box 是一款快速的、零配置的 PHAR 打包工具。 还记得前些天的《SMProxy,让你的数据库操作快三倍!》吗,该项目的 PHAR 便是使用 Box 打包完成的。

January 15, 2019 · Wi1dcard

在 PHP 中格式化并高亮 SQL 语句

jdorn/sql-formatter 是一个轻量级的 PHP 类用于格式化 SQL 语句。 它支持自动进行缩进、添加换行,甚至还支持语法高亮。

January 10, 2019 · Wi1dcard

Laravel 二级域名绑定子目录 Nginx 配置

二级域名绑定子目录 Nginx + PHP-FPM 配置,内置 Laravel 重写规则,可用于本地多项目开发。 在 Nginx 的站点配置目录新增站点后,增加以下代码块即可。 server_name ~^(.*)\.laravel\.test$; # 正则二级域名 root /Users/jootu/web/$1/public; index index.html index.htm index.php; location / { try_files $uri $uri/ /index.

October 15, 2018 · Wi1dcard

PSR-7 与 HTTPlug

前言 最近国庆期间没继续开发项目,据说要有大变动,等国庆后开会讨论,内心有点方张。 Updated: 国庆后的第一天,果然砍了。难受。 趁着假期,封装了两个扩展包。 中国行政区划地址库 SDK + 爬虫 + 数据 百度小程序第三方 PHP SDK 在构建后者的时候,考虑到 PSR-7 逐渐在 PHP 生态圈被大众接受,经过斟酌决定将 HTTP 客户端与 SDK 自身逻辑分离,完全遵循 PSR-7,所有请求都实现为 RequestInterface,随后使用任意兼容 PSR-7 的客户端发送即可,扩展包本身不关注 HTTP 协议的数据传输。

October 6, 2018 · Wi1dcard

Laravel 5.7 重写软删除字段为时间戳

0x00 背景 Laravel 自带软删除使用特殊值 NULL 表示此记录未被删除。由此引出一个问题。 设想,某表内需要建立索引,索引字段为 name, deleted_at。 假设此索引条件必定唯一,可建立 Uniuqe 索引。然而 deleted_at 允许 NULL 存在,导致索引无效,在查询时降级为 Index。 因此,在绝大多数场景下,我们查询未被删除(deleted_at IS NULL)的数据,唯一索引都没有卵用。

September 25, 2018 · Wi1dcard

Laravel 5.7 模型常用属性集合

Laravel 5.7 于前几天发布,迫不及待给正在开发的新项目做了升级。 在此整理一下模型常用属性,以备日后查询。 $fillable = [ '可批量填充的字段' ]; $guarded = [ '与上相反' ]; $hidden = [ '模型转换为数组时应当隐藏的字段' ]; $visable = [ '与上相反' ]; $appends = [ '模型转换为数组时应当追加的虚拟字段' // 例如访问器 ]; $with = [ '应当预加载的关联关系', ]; $attributes = [ '字段名' => '字段默认值' ]; $casts = [ '字段名' => '自动类型转换的目标类型' ]; $dates = [ '应当被转换为日期时间的字段' ]; $touches = [ '模型更新时应当一并更新的关联关系' ]; // 以下为扩展包使用的属性 // https://github.

September 18, 2018 · Wi1dcard

Packagist(Composer)中国镜像

从七月份得知国内镜像开始「体检」之后,一直没有收到恢复的消息。

September 5, 2018 · Wi1dcard

我的周报工具箱

大概在两个月以前,刚入职目前所在的公司,要求写周报,而且要求比较详细,每天的任务都需要列清楚。 对于我这种很健忘,并且喜欢以结果为导向,专注于代码的程序员简直要命。 所以下决心,搞个帮我写周报的工具。于是这个项目诞生了。 自己用了一阵子感觉还不错,经过一番整理完善决定开源。 仓库地址:https://github.com/wi1dcard/weekly-report 其实没什么技术含量,无非就是利用 Git 的提交记录,编排成 Markdown。 BTW,其实或许用 Python 写会更合适。 最后,我的周报项目 VS Code 配置如下。 { "[markdown]": { "editor.wordWrap": "off", "editor.

August 30, 2018 · Wi1dcard

Yii2 获取当前请求的路由信息

如题,有两种方案实现。 方案一: Yii::$app->controller->route; 方案二: Yii::$app->requestedRoute 看过源码后才知道这俩的区别。 方案一是根据当前请求已创建的 module / controller / action,也就是实际处理当前请求的模块、控制器、方法所组合而成的路由,绝对规范。 方案二是根据 UrlManager::routeParam 等配置,解析请求 URL 取得的访问路由,不一定规范,但对用户可见。 通常情况下两种方法应该是等效的;某些特殊场景,例如修改过根据路由解析创建控制器的过程、内部反代重写过 URL 等,则有可能导致两方得到的值不一致。

August 29, 2018 · Wi1dcard