Linux top 命令基础使用
P -> 按照CPU排序
M -> 按照Memory排序
z -> 很酷的视觉颜色
x -> 当前正在排序的高亮列
P -> 按照CPU排序
M -> 按照Memory排序
z -> 很酷的视觉颜色
x -> 当前正在排序的高亮列
laravel版本:5.2.*
1 | php artisan make:listener QueryListener --event=Illuminate\\Database\\Events\\QueryExecuted |
or
1 | sudo /usr/local/bin/php artisan make:listener QueryListener --event=Illuminate\\Database\\Events\\QueryExecuted |
会自动生成文件 app/Listeners/QueryListener.php
打开 app/Providers/EventServiceProvider.php,在 $listen 中添加 Illuminate\Database\Events\QueryExecuted 事件的监听器为 QueryListener
1 | protected $listen = [ |
最终代码如下
1 | namespace App\Providers; |
打开 app/Listeners/QueryListener.php
光有一个空的监听器是不够的,我们需要自己实现如何把 $sql 记录到日志中。为此,对 QueryListener 进行改造,完善其 handle 方法如下:
1 | $sql = str_replace("?", "'%s'", $event->sql); |
最终代码如下
1 | namespace App\Listeners; |
之前有写过类似的一篇文章,有位同学突然找来解惑,发现自己采用了另外的一个方法,这里也分享下,希望对使用reactjs的同学有帮助。
逻辑思路是这样子的,在componentDidMount中实现更新dom的操作,异步加载需要的资源文件,然后在加载完后实现qiniu的初始化操作。这里就不需要在webpack或者其他打包工具中去引入qiniu的包文件,导致打完包的文件过大了。
我这里使用了nodejs的库scriptjs,
1 | const $S = require('scriptjs'); |
可以实现异步的加载文件,当然你也可以使用你认为更好的,当然也别忘记告诉我下。以下为代码实现部分:
1 | async componentDidMount() { |
这里有个getUploadToken方法,这个方法是根据官方文档的策略实现了一个获取上传token的方法,此方法是通过访问服务端的接口来获取token。具体实现过程可以参考官方,不明白的也可以加群讨论。
PHP7 的新特性大概浏览下,还是能在工作的效率上有很大益处的。
1,性能提升
这个我就不做测试了,哈哈
2,类型声明
1 | class Student |
3,可以声明严格类型校验模式 , 此声明必须第一个声明
1 | declare (strict_types = 1); |
4, 标量类型提示
1 | function getTotal(float $a, float $b) |
5, 返回类型声明
1 | function getSum(float $a, float $b): int |
6, 错误处理
新的继承如下
|- Exception implements Throwable
|- …
|- Error implements Throwable
|- TypeError extends Error
|- ParseError extends Error
|- ArithmeticError extends Error
|- DivisionByZeroError extends ArithmeticError
|- AssertionError extends Error
1 | try { |
7, Null Coalesce Operator
1 | $name = $firstName ?? "Guest"; |
等同于
1 | if (!empty($firstName)) { |
还可以像下面这样使用
1 | $name = $firstName ?? $username ?? $placeholder ?? “Guest”; |
8, Spaceship Operator
1 | $compare = 2 <=> 1 |
等同于下面
1 | 2 < 1? return -1 |
9,Easy User-land CSPRNG: random_int and random_bytes.
1 | $int = random_int(1, 2); |
举例子如下:
1 | $models = static::where('user_id', $userId)->leftJoin('product_gift', function ($join) { |
记录分享
1 | { |
配置分享,好像很难找到标准的
1 | { |
就这么简单。但是还有个保存自动格式化的,这个在默认的配置里面加就好了。
Sublime text 3 配置分享
1 | { |
需要插件或者包
Material Theme
Material Theme - Appbar
powerline
代码记录如下
1 | Host github.com |
操作方式是这里用到了connect 这个功能,所以为了为了使用这个功能,前提是安装connect
1 | brew install connect |
需要使用github,但是国内访问很慢,往往会发生connection refused的事情发生,那就自己去弄个vpn吧。前提不要做扰乱国家安稳的事情
下面记录下git的配置方法
1 | git config --global http.proxy 'socks5://127.0.0.1:1080' |