检测网站支持的SSL/TLS协议版本

Chrome 72及以上版本不支持TLS 1.0和TLS 1.1,访问TLS 1.0或1.1证书的站点会告警,但不阻止用户访问站点。 为了解决Chrome的这个问题,今天升级了下Nginx的TLS协议版本,这里记录一下如何检测支持的协议版本。 ...

2019-11-14 · 1 min · 205 words · Liudon

记一次难忘的手术经历

俗话说的好,十人九痔。这九个人里就有我一个。 😂 去年因为痔疮去过一趟医院,医生当时建议手术。 后来用了点药,没啥症状了,就不放在心上了。 结果前两天公司团建吃了点辣,痔疮又犯了,大便拉不出来,憋的难受。 ...

2019-10-28 · 2 min · 646 words · Liudon

十一假期经历

今年的十一火车票非常难抢,12306的候补订单,一直等到时间截止也没订上票。 只好请了2天假,提前回家了,给自己也放个假休息一下。 回家的几个经历: 家里的老洗衣机光荣退休了,年龄比我都要大,爸妈舍不得换一直用着。 ...

2019-10-08 · 1 min · 306 words · Liudon

Swoft 框架运行分析(五) —— ConsoleProcessor模块分析

这里以Swoft启动http server为例。 php bin/swoft http:start 执行上述命令,启动http server。 在前面第一篇文章的时候,提到了如何启动http服务。 今天我们就来看一下http服务是如何启动的,具体实现就在ConsoleProcess这个模块。 ...

2019-09-26 · 10 min · 4524 words · Liudon

Swoft 框架运行分析(四) —— EventProcessor模块分析

今天我们来看一下EventProcessor的实现。 /** * Handle event register * @return bool */ public function handle(): bool { if (!$this->application->beforeEvent()) { CLog::warning('Stop event processor by beforeEvent return false'); return false; } /** @var EventManager $eventManager */ $eventManager = bean('eventManager'); [$count1, $count2] = ListenerRegister::register($eventManager); CLog::info('Event manager initialized(%d listener, %d subscriber)', $count1, $count2); // Trigger a app init event Swoft::trigger(SwoftEvent::APP_INIT_COMPLETE); return $this->application->afterEvent(); } 获取eventManager的Bean实例,对应为Swoft\Event\Manager\EventManager类。 ...

2019-09-26 · 4 min · 1896 words · Liudon

一个git submodule update引发的问题

背景 1月份的时候,用hugo搭了这套博客系统。 本机写md文件,更新到github,然后通过travis-ci自动发布。 jane主题是通过git submodule引入的,.gitmodules文件内容。 ...

2019-09-06 · 4 min · 1748 words · Liudon

一个Curl的耗时长的问题

发现某个接口请求很慢,但是后端确认接口是很快的。 在机器上通过shell执行curl命令,确实很快,但是PHP代码里请求又确实很慢。 业务里用到了Requests这个库,一开始以为是这个库导致的问题。 ...

2019-09-04 · 2 min · 925 words · Liudon

Swoft 框架运行分析(三) —— BeanProcessor模块分析

今天讲一下BeanProcessor模块,先看一下handle方法实现。 /** * Handle bean * * @return bool * @throws ReflectionException * @throws AnnotationException */ public function handle(): bool { if (!$this->application->beforeBean()) { return false; } $handler = new BeanHandler(); $definitions = $this->getDefinitions(); $parsers = AnnotationRegister::getParsers(); $annotations = AnnotationRegister::getAnnotations(); BeanFactory::addDefinitions($definitions); BeanFactory::addAnnotations($annotations); BeanFactory::addParsers($parsers); BeanFactory::setHandler($handler); BeanFactory::init(); /* @var Config $config*/ $config = BeanFactory::getBean('config'); CLog::info('config path=%s', $config->getPath()); CLog::info('config env=%s', $config->getEnv()); $stats = BeanFactory::getStats(); CLog::info('Bean is initialized(%s)', SwoftHelper::formatStats($stats)); return $this->application->afterBean(); } 先通过getDefinitions方法获取所有的Bean定义。 ...

2019-09-02 · 9 min · 4044 words · Liudon

Swoft 框架运行分析(二) —— AnnotationProcessor模块分析

上一篇介绍了,SwoftApplication里定义了6个Processor对象。 protected function processors(): array { return [ new EnvProcessor($this), new ConfigProcessor($this), new AnnotationProcessor($this), new BeanProcessor($this), new EventProcessor($this), new ConsoleProcessor($this), ]; } 所有的Processor实现都在framework\src\Processor目录下。 ...

2019-08-29 · 4 min · 1656 words · Liudon

Swoft 框架运行分析(一)

Swoft 是一款基于 Swoole 扩展实现的 PHP 微服务协程框架。 以前一直都是用的原生swoole框架,最近有时间研究了下衍生的Swoft框架。 刚开始看的时候,感觉自己像个原始人,完全看不懂。 ...

2019-08-29 · 2 min · 966 words · Liudon

BCMath 与 科学计数

代码如下 <?php echo 9.99997600 + 2.4E-5; echo "\n===\n"; echo bcadd(9.99997600, 2.4E-5, 8); 结果为 10 === 9.99997600 问了朋友,查了各种资料,终于在PHP手册里发现了这段话。 Caution Passing values of type float to a BCMath function which expects a string as operand may not have the desired effect due to the way PHP converts float values to string, namely that the string may be in exponential notation (which is not supported by BCMath), and that the decimal separator is locale dependent (while BCMath always expects a decimal point). ...

2019-08-16 · 1 min · 168 words · Liudon

Flink Could Not Resolve Resourcemanager Address

什么是Flink。 Apache Flink® - Stateful Computations over Data Streams Flink安装参考(官方文档)[https://ci.apache.org/projects/flink/flink-docs-release-1.7/tutorials/local_setup.html]。 ...

2019-03-28 · 2 min · 517 words · Liudon

解决Sublime Text安装包时"There Are No Packages Available for Installation"的报错

今天安装hugofy的包时,一直遇到"There Are No Packages Available for Installation"的错误。 按网上的教程,配置host,配置代理都不起作用。 ...

2019-01-11 · 1 min · 336 words · Liudon

2019,新开始

从2011年开始写博客,博客程序从WordPress换成Typecho。 早就有想法换成静态博客,一直没时间搞。 2019年了,新年新气象,用hugo + github pages搞了个新博客。 ...

2019-01-09 · 1 min · 250 words · Liudon