数据
ID | first_name | last_name |
---|---|---|
1 | Jackie | Chan |
2 | Bruce | Lee |
苹果系统(macOS、iOS)都已经全面支持暗黑模式(也叫深色模式)了,在这里不做过多的介绍了。在众多的技术文章里都有介绍如何使用,最常见的是通过 CSS 中的 prefers-color-scheme: dark 来检测用户是否开启了 Dark Mode,在 CSS里定义不同的样式。
期待已久的 PHP7.4 终于发布了,个人最期待的功能还是 Opcache Preloading。
用 Laravel 的小伙伴应该都会用到 Queue, 从手册 Job 失败后会将队列信息记录到 failed_jobs
表,可以通过
1 | php artisan queue:failed-table |
作用主要是为了方便分析失败原因和 Job 重试(本身支持 retry),这都很好理解。当 failed_jobs
没有被创建的时候,会报这样一个异常:
1 | SQLSTATE[42S02]: Base table or view not found: 1146 Table 'a8591.failed_jobs' doesn't exist |
并且记录到 log 文件,如果你的项目中有异常通知,那是相当困扰。
但是有一个场景,也许我并不关心任务执行是否成功,或者说因为某种特定不可控因素允许任务存在执行失败的情况,而我又不希望被这类异常打扰要怎么办呢?
illuminate/notifications
1 | composer require illuminate/notifications |
bootstrap/app.php
注册服务1 | $app->register(Illuminate\Notifications\NotificationServiceProvider::class); |
⚠️ 必须在 AppServiceProvider 注册之前,不然自定义
Channel
会无法找到,提升InvalidArgumentException with message 'Driver [xxxx] not supported.'
AppServiceProvider.php
注册 Channel
1 | $this->app->make(Illuminate\Notifications\ChannelManager::class)->extend('your-channel', function() { |
1 | class Foo |
结果是 1
还是 2
?答案是 1
接下来解释一下:
__call
方法关注方法能否被访问到,而不仅仅是关注是否存在__callStatic
方法关注的是方法能否被静态的访问到,而不是关注方法是否存在,是否是静态方法。__call
,__callStatic
,是根据调用的上下文。如PHP Extension - Memcache module with support of newer PHP 7.0-7.3
Install
1 | # clone source |
字段 | 数据类型 |
---|---|
id | int(11) |
created_at | datetime |
时间段 | 数量 |
---|---|
2019-09-29 12:00:00 ~ 2019-09-29 12:05:00 | 100 |
2019-09-29 12:05:00 ~ 2019-09-29 12:10:00 | 120 |
2019-09-29 12:10:00 ~ 2019-09-29 12:15:00 | 131 |
2019-09-29 12:15:00 ~ 2019-09-29 12:20:00 | 189 |
2019-09-29 12:20:00 ~ 2019-09-29 12:25:00 | 134 |
2019-09-29 12:25:00 ~ 2019-09-29 12:30:00 | 155 |
2019-09-29 12:30:00 ~ 2019-09-29 12:35:00 | 198 |
2019-09-29 12:35:00 ~ 2019-09-29 12:40:00 | 133 |
1 | -- 300 为 5 分钟 |
如果 created_at 类型为 int,还可以减少一次转换
1 | -- 300 为 5 分钟 |
时间分片 MySQL没有相关的时间分片函数,还好可以用取模(%)实现
CI/CD (continuous integration and continuous deployment)
最近同事分享了 GitHub Actions ,发现除了我们常听到的自动部署(项目上线)外还可以做很多事情,比如说就可以自动生成 Hexo 博客,我擦!这不就是我想要的吗?以后就不用每次写完文章之后再执行 hexo clean && hexo g -d
了。
回来各种百度,有几篇针对 HEXO 的文章,照着开始写脚本,发现怎么都不能成功,各种错误。折腾了 3 个小时,终于顺利通过了。