Dart异步async、await和Future的语法技巧

由于前面的HTTP请求用到了异步操作,不少小伙伴都被这个问题折了下腰,今天总结分享下实战成果。Dart是一个单线程的语言,遇到有延迟的运算(比如IO操作、延时执行)时,线程中按顺序执行的运算就会阻塞,用户就会感觉到卡顿,于是通常用异步处理来解决这个问题。当遇到有需要延迟的运算(async)时,将其放入到延迟运算的队列(await…

yaf框架单元测试

代码目录结构: 项目目录 application 控制器和视图目录 configs ini配置文件目录 library Dao、Model、Service层目录 public 入口文件目录 tests 单元测试目录 api 测试用例目录 bootstrap.php 单元测试初始化文件 vendor 第三方库(composer) composer.json composer依赖文件 phpunit.xml 单元测试配置文件 在yaf中做单元测试,主要…

Jetbrain IDE(PHPStom,Pycharm,Android Sudio,Idea...)高效开发远程程序

背景:公司1台配置比较弱的笔记本(8G内存)+1台性能良好的台式机(16G内存)。 原本笔记本除了安装PHPStom、Pycharm、Android Sudio、Idea…,还安装了docker,运行开发程序。 后果就是,每当开两个IDE,笔记本不是卡死就是死机,内存动不动就100%。 连续几次,实在受不了,就有了把docker和代码移到台式机的想法。 可是代码在IDE在笔…

容器内执行docker命令

大部分情况下,Docker通过主机(host)来查看和控制容器, 其实还有其他的方式,API和容器内部,这里我们主要讲在容器内部执行docker命令。 要实现这样的操作,有几个条件: 主机的/var/run/docker.sock文件挂载到容器中主机的/usr/bin/docker文件挂载到容器中容器中的用户有docker执行权限(默认情况下只有root用户和docker用户组有这…

使用Python脚本批量添加WordPress文章

我们用到Wordpress的xmlrpclib,步骤: 安装python 和 xmlpc。然后用下面代码新增一篇文章: import datetime, xmlrpclib wp_url = "http://www.awaimai.com/xmlrpc.php" wp_username = "" wp_password = "" wp_blogid = "" publish = True server = xmlrpclib.ServerProxy(wp_url) title = "This is title" content = "This is conten…

Ubuntu通过samba挂载Windows目录

步骤如下: 1 安装CIFS Utils包 sudo apt-get install cifs-utils 2 创建挂载点 sudo mkdir /mnt/local_share 3 挂载(单次有效) sudo mount -t cifs //192.168.1.11/public /mnt/local_share # 不需用户密码 sudo mount -t cifs //192.168.1.11/public /mnt/local_share -o user=john # 自动用户名,手动输入密码 sudo mount.cifs //1…

PHP实现大数字格式化成K/M/B结尾的简短形式

这个功能在显示文章访问量中会用到,在GitHub的star中也会有,比如: 232简短显示为232 12556简短显示为12.6k(四舍五入) 1232323简短显示为1.2m(四舍五入) 32343533232简短显示为32.3b(四舍五入) PHP实现代码: /** * 转换数字为简短形式 * @param $n int 要转换的数字 * @param $precision int 精度 */ function shortenNumber($…

WordPress 10w+数据时, 解决SQL_CALC_FOUND_ROWS查询使网站变慢问题

Wordpress在查询post列表时,默认会同时把文章数量也查询出来, 使用这种方式的有:get_posts 、query_posts和WP_Query。 get_posts在4.6.1+已经不用SQL_CALC_FOUND_ROWS,但是query_posts和WP_Query还是会用,所以还须优化。 具体语句如下: SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts WHERE 1=1 AND wp_posts.post_type =…

nginx和php-fpm通信, unix socket还是tcp?

Nginx和Fastcgi( php-fpm是PHP端的Fastcgi实现 )的通信方式有两种,一种是TCP的方式,一种是unix socket方式。 两种方式各有优缺点,这里先给出两种的配置方法,然后再对性能、安全性等做出总结。 TCP是使用TCP端口连接,本地配置: 127.0.0.1:9000 Socket是使用Unix Domain Socket连接套接字,一般以文件形式:/dev/shm/PHP-cgi.sock 很…

PHP Opcache工作原理

PHP项目中,尤其是在高并发大流量的场景中,如何提升PHP的响应时间,是一项十分重要的工作。 而Opcache又是优化PHP性能不可缺失的组件,尤其是应用了PHP框架的项目中,作用更是明显。 1. 概述 在理解 OPCache 功能之前,我们有必要先理解PHP-FPM + Nginx 的工作机制,以及PHP脚本解释执行的机制。 1.1 PHP-FPM + Nginx 的工作机制 请求…