Moting 发布的文章

时刻都不要忘记 blog,既然已经选择了,就好好走下去

虽然很多地方都有推荐的插件,但我居然能捕捉到官方推送的,那就记下来吧。

当前插件以 IntelliJ IDEA 为主,但作为 PHP 程序员,经常使用 PHPSTORM ,也需要关注一下一些功能性比较强的工具

出处:https://mp.weixin.qq.com/s/ThnqbODT-wa8kqghdaUTww

【Jetbrains】最受欢迎的插件

Key Promoter X

众所周知,不使用鼠标编码可以更快、更高效,但是 IntelliJ IDEA 上需要记忆的快捷键有这么多,怎样才能做到以键盘为中心呢?Key Promoter X 将训练您使用这些快捷键。 它就像一名执着细致的教练,在您点击 IDE 内的某个元素时,它将显示带有相关快捷键的工具提示。 此外,对于没有快捷键的按钮,Key Promoter X 还会提示您自行创建。

熟能生巧! 过不了多久,您就会下意识地使用起快捷键,省去不必要的鼠标点击。

请输入图片描述

Rainbow brackets

如果您曾经为嵌套元素的大量重复中括号而烦恼,那这款插件就是您的救星。 它为每组左中括号和右中括号提供了各自的颜色,使跟踪代码块的起始和结束位置更加容易。 相信我们,只要尝试一次,您就会知道它有多好。

Randomness

需要在项目中添加单词、数字或字符串之类的随机数据吗? 如果变体已经用尽,您可以安装这款插件,然后在 Windows 和 Linux 上按 Alt+R,或在 macOS 上按 ⌥R,在下拉列表中查看可以添加的可能数据类型。 按需选择,然后见证奇迹 – 每次您应用该操作,Randomness 插件都会添加一个不同的值。

GitToolBox

IntelliJ IDEA 已支持成熟的 Git 集成,但此插件的额外小功能可满足您的个人需求。 人们大多是为了内联责备 – 这一注释将显示谁在何时改变了行内的代码。GitToolBox 还增加了状态显示、自动获取、背后通知等功能。

安装此插件,和 50 多万人一起简化日常 Git 工作流。

WakaTime

这就像一个健身跟踪器,不过是用于监测您的编码活动。WakaTime 插件具有时间跟踪服务,同时可自动生成整洁有趣的指标和分析。 您可以用它来分析团队生产力,或帮助自己提高编程速度。

Extra Icons

Extra Icons 插件适合想让 Project 视图更加亮眼的用户。 它增加了一组默认情况下 IntelliJ IDEA 不支持的图标。 这些图标不仅美观,还将简化文件之间的导航,因为您可以更直观地识别文件类型。 最重要的是,这些图标高度可定制。 您可以在 Preferences| Settings / Appearance & Behavior/ Appearance/ Extra Icons 中进行微调。

Published on 23 February 2020 by laruence
本文地址: https://www.laruence.com/2020/02/23/1990.html
转载请注明出处

一个问题, var_dump(1...9)输出什么?

动手验证下:

php -r “var_dump(1...9)”;
string(4) ”10.9“

输出10.9, 乍一看这个var_dump的输出很奇怪是不是? 为什么呢?

这里教大家,如果看到一段PHP代码感觉输出很奇怪,第一反应是看下这段代码生成的opcodes是啥,虽然这个问题其实是词法分析阶段的问题,不过还是用phpdbg分析下吧(一般为了防止opcache的影响,会传递-n):

phpdbg -n -p /tmp/1.php
function name: (null)
L1-35 {main}() /tmp/1.php - 0x7f56d1a63460 + 4 ops
L2 #0 INIT_FCALL<1> 96 "var_dump"
L2 #1 SEND_VAL "10.9" 1
L2 #2 DO_ICALL
L35 #3 RETURN<-1> 1

所以这么看来,早在生成opcode之前,1...9就变成了常量10.9,考虑到这是字面量,我们现在去看看zend_language_scanner.l, 找到这么一行:

DNUM ({LNUM}?"."{LNUM})|({LNUM}"."{LNUM}?)

这个是词法分析定义的浮点数的格式,到这里也就恍然大悟了:
1...9 会被依次接受为: 1. (浮点数1), 然后是 . (字符串连接符号) 然后是.9(浮点数0.9)

所以在编译阶段就会直接生成 “1” . “0.9” -> 字符串的字面量”10.9”

好了,到这里,这个小“谜题”就解释清楚了。

当然这个也不仅仅是PHP会这么定义了,几乎所有的语言都会定义这种缩写浮点数都形式. C语言中有的时候我们为了输入一个浮点型的整形,就可以采用比如 1. 来告诉编译器这是个浮点数.

只不过,一来刚好在PHP中.号还有另外一层含义就是字符串连接,二来...在PHP5.6之后是个新的操作符叫做Splat operator, 可以用来定义可变参数函数,或者解数组,比如,

<?php
 
function  foo($a, $b, $c) {
        var_dump($a + $b + $c);
}
 
 
$parameters = array (1, 2, 3);
 
foo(...$parameters);
?>

所以, 乍一看才会导致了这个看起来很困惑的结果, :)

错误

在Ubuntu上的 /etc/apt/sources.list加入源后执行sudo apt-get update出现下图错误:

Ubuntu更新软件源出现GPG error.png

原因

在sources.list文件中加入了非ubuntu官方源,所以认为加入源是不可信任的。

解决方法

导入该源公钥。A6F9F1CA为上图中公钥后八位

gpg --keyserver keyserver.ubuntu.com --recv-keys A6F9F1CA
gpg --export --armor A6F9F1CA | sudo apt-key add -