浅析 Laravel 文档推荐的 Nginx 配置

以 Laravel 5.8 文档 为准,浅析 Nginx 配置。可作为 轻松部署 Laravel 应用 的拓展阅读。

March 16, 2019 · Wi1dcard

你需要哪些云服务基础设施?

本文为《轻松部署 Laravel 应用》的预习补充篇。

March 1, 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

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

Laravel 5.6 自定义迁移桩代码

书接上回,前面说到在迁移内给 Blueprint 增加自定义的 Macro。那么,当我们每次使用 php artisan make:migration 都需要手动修改一次模板吗?这不清真 = =。 0x00 思路 自定义 make:migration 所使用的 stub(「桩」,可以理解为模板)文件即可。 在开始之前,你首先需要创建属于你的 stubs 文件,我建议直接从 Laravel 5.

August 28, 2018 · Wi1dcard

Laravel 5.6 给 Blueprint 增加自定义方法

PHP 基本功足够扎实的情况下,强烈建议学习 Laravel 的过程除了阅读官方文档外,仔细阅读框架源码;或许会有小惊喜哟。 0x00 准备 Laravel 5.6 php artisan make:migration ... 近期在项目过程中,遇到这么个需求:在所有模型表内都需要支持自增主键 id、创建时间、更新时间以及软删除,以备不时之需。 于是乎。传统的做法是,在每个迁移 Schema::create 回调内,都写一遍 $table->increments + softDeletes + timestamps,就像这样:

August 28, 2018 · Wi1dcard

Laravel 5.6 路由参数排除匹配

Laravel 提供 where 方法和 Route::pattern 方法,用于设置某个路由参数必须匹配指定表达式,则此路由才会被匹配。 那么,如何设置排除某个「关键词」(或者我们称它为「特殊参数值」),只有这个关键词不匹配,其它都匹配呢? 举个例子 Route::domain('{user}.example.com'); Route::pattern('user', '???'); ??? 处代表二级域,通常不可以设置为一些敏感保留词,比如 www / admin 等。 解决方案 实际上,Laravel 的路由参数匹配,使用的正是正则表达式。所以,这就好办了。

August 18, 2018 · Wi1dcard

Laravel 5.6 使用 MongoDB 存储框架日志

网上的文章普遍是 Laravel 5.5 版本,而日志系统在 5.6 版本升级时进行了部分改动,原有方法基本都失效了。本文根据 Laravel 5.6 文档的指引,实现使用 MongoDB 存储框架日志。 0x00 准备 MongoDB Engine 首先,安装 MongoDB,参见 官方文档。 MongoDB Driver(PHP Extension) 其次,安装 PHP mongodb 扩展,参见 官方文档。

August 15, 2018 · Wi1dcard

Laravel + Swoole 实现 TCP-UDP Socket 服务端

Laravel + Swoole 实现更快的请求处理速度、更高并发有扩展包可供选择,那么如何在 Laravel 框架内优雅地嵌入 Swoole 实现 TCP/UDP Socket 服务端呢? 0x00 Why 先说说为什么要嵌入 Laravel 吧。 就一个原因: Eloquent ORM

March 6, 2018 · Wi1dcard