博客架构说明
在拿到liudon.com域名前,手中已有两个域名: liudon.org liudon.xyz liudon.org已经不再更新,仅作归档使用。 liudon.xyz当时是静态博客流行,尝鲜使用。 ...
在拿到liudon.com域名前,手中已有两个域名: liudon.org liudon.xyz liudon.org已经不再更新,仅作归档使用。 liudon.xyz当时是静态博客流行,尝鲜使用。 ...
前面有写到,被隔离了一周,好在赶在假期开始前解除了隔离。 趁着这次难得的假期,外出放松一下。 爬百望山。 娃是第一次爬山,百望山不高,适合带娃体验爬山,我也从13、14年之后没再爬过山了。 ...
在关于部分,有写域名的来历。 当时liudon.com已经被注册,所以只好注册了liudon.org。 2011年注册的liudon.org,最早用wordpress搭建了博客。 ...
从没有想过疫情会离自己这么近,记录一下。 周一的时候说是有确诊同学来过公司,下午组织全员核酸,做完核酸立马回家。 周二早上全员核酸阴性,继续到公司上班。 ...
表结构如下 desc info; +-------+-----------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+-----------------+------+-----+---------+----------------+ | id | int(8) unsigned | NO | PRI | NULL | auto_increment | | name | varchar(20) | YES | | NULL | | +-------+-----------------+------+-----+---------+----------------+ 2 rows in set (0.00 sec) 执行sql. insert into info values ('', 'xxx'); insert into info values ('', 'yyy'); 查询记录. select * from info; +----+------+ | id | name | +----+------+ | 1 | xxx | | 2 | yyy | +----+------+ 2 rows in set (0.00 sec) 执行下面sql. ...
问题描述 # 表结构 MySQL > desc user_packages; +----------------+---------------------+------+-----+---------------------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------------+---------------------+------+-----+---------------------+----------------+ | up_id | bigint(20) unsigned | NO | PRI | NULL | auto_increment | | start_date | date | NO | | NULL | | | end_date | date | NO | | NULL | | | up_created | datetime | NO | MUL | 0000-00-00 00:00:00 | | | up_updated | datetime | NO | | 0000-00-00 00:00:00 | | +----------------+---------------------+------+-----+---------------------+----------------+ 5 rows in set (0.00 sec) MySQL > select * from user_packages limit 5; +-------+------------+------------+ | up_id | start_date | end_date | +-------+------------+------------+ | 185 | 2018-04-01 | 2018-06-30 | | 186 | 2018-04-01 | 2018-06-30 | | 187 | 2018-04-01 | 2018-06-30 | | 188 | 2018-04-01 | 2018-06-30 | | 189 | 2018-04-01 | 2018-06-30 | +-------+------------+------------+ 5 rows in set (0.00 sec) 操作过程 需要更新某条记录的end_date字段,执行sql如下: ...
关于取消住房公积金提取业务纸质申请表及部分业务网上办结的公告 时间:2020年01月08日 来源:http://gjj.beijing.gov.cn/web/zwgk/_300583/zxzysx/675803/index.html ...
下载PHP7.2源码,编译安装。 [root@VM_73_135_centos ~/swoole-src-4.4.12]# php -v PHP 7.2.25 (cli) (built: Nov 26 2019 19:33:23) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies [root@VM_73_135_centos ~/swoole-src-4.4.12]# 安装Swoole。 phpize && \ ./configure && \ make && make install 安装完,准备修改php.ini文件,结果没找到。 ...
Chrome 72及以上版本不支持TLS 1.0和TLS 1.1,访问TLS 1.0或1.1证书的站点会告警,但不阻止用户访问站点。 为了解决Chrome的这个问题,今天升级了下Nginx的TLS协议版本,这里记录一下如何检测支持的协议版本。 ...
俗话说的好,十人九痔。这九个人里就有我一个。 😂 去年因为痔疮去过一趟医院,医生当时建议手术。 后来用了点药,没啥症状了,就不放在心上了。 结果前两天公司团建吃了点辣,痔疮又犯了,大便拉不出来,憋的难受。 ...
今年的十一火车票非常难抢,12306的候补订单,一直等到时间截止也没订上票。 只好请了2天假,提前回家了,给自己也放个假休息一下。 回家的几个经历: 家里的老洗衣机光荣退休了,年龄比我都要大,爸妈舍不得换一直用着。 ...
这里以Swoft启动http server为例。 php bin/swoft http:start 执行上述命令,启动http server。 在前面第一篇文章的时候,提到了如何启动http服务。 今天我们就来看一下http服务是如何启动的,具体实现就在ConsoleProcess这个模块。 ...
今天我们来看一下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类。 ...
背景 1月份的时候,用hugo搭了这套博客系统。 本机写md文件,更新到github,然后通过travis-ci自动发布。 jane主题是通过git submodule引入的,.gitmodules文件内容。 ...
发现某个接口请求很慢,但是后端确认接口是很快的。 在机器上通过shell执行curl命令,确实很快,但是PHP代码里请求又确实很慢。 业务里用到了Requests这个库,一开始以为是这个库导致的问题。 ...
今天讲一下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定义。 ...
上一篇介绍了,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目录下。 ...
Swoft 是一款基于 Swoole 扩展实现的 PHP 微服务协程框架。 以前一直都是用的原生swoole框架,最近有时间研究了下衍生的Swoft框架。 刚开始看的时候,感觉自己像个原始人,完全看不懂。 ...
代码如下 <?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). ...
什么是Flink。 Apache Flink® - Stateful Computations over Data Streams Flink安装参考(官方文档)[https://ci.apache.org/projects/flink/flink-docs-release-1.7/tutorials/local_setup.html]。 ...