V2EX qiujin
 qiujin 最近的时间轴更新
qiujin

qiujin

V2EX 第 205220 号会员,加入于 2016-12-09 18:31:28 +08:00
qiujin 最近回复了
2018-09-03 14:22:15 +08:00
回复了 EDDYCJY 创建的主题 问与答 PHP 有做 RPC Server,且支持 Protobuf 的吗?
写过简单的 PHP Grpc Server,如果不涉及到数据流等在 fpm 环境下不适合实现的功能外,用 PHP 实现一个简单的 Grpc Server 还是可以的。
https://github.com/qiu-jin/phpegg/blob/master/framework/core/app/Grpc.php
2017-10-23 18:27:55 +08:00
回复了 LiuXuFei 创建的主题 PHP 有什么合适的包能接收 json-rpc 的异步推送吗?
问题重点是 websocket,首先需要个 websocket client 吧。

用 PHP 写过 jsonrpc 的应用服务,使用通知回调方法也可以实现类似需求,http://www.phpegg.com/doc/app-jsonrpc.html
2017-10-18 20:14:02 +08:00
回复了 Bazingawang 创建的主题 Coding Coding 动态 Pages 内测邀请:一键运行你的 PHP 程序
qiujin
申请试试
@tanszhe 嗯,是用预处理处理的参数,只是 LOG 打印 SQL 时采用拼接的方式,这样看起来更直观。
2017-10-15 19:25:36 +08:00
回复了 gouchaoer 创建的主题 PHP 恨 laravel 的老外
恨谈不上,就是觉得有点不合适,所以我自己开了个坑 http://www.phpegg.com
使用 beanstalkd 这种有延迟任务功能的队列
文档已经整理放到新的站点 http://www.phpegg.com
@vindurriel with 语句是逻辑联表查询,一次查询的确需要执行 1+1 次 SQL,它类似于 ActiveRecord 型的 ORM 中的 hasMany 设定,相对 ORM 优点是不用生成大量对象也不用写 model 模型代码定义每个表和表之间关系。

写一个简单的例子,像 v2 这样的社区有多个主题贴子,每一个主题也有多个回复评论,如果我一次想要查询自己所有的主题贴子和所有的主题贴子的回复评论回复怎么办?

用常规写法,先查询所有的主题贴,再循环查询每个主题贴的回复评论

$posts = $this->db->post->where('name', 'qiujin')->find();
foreach ($posts as $i => $post) {
$posts[$i] = $this->db->comment->where('post_id', $post['id'])->find();
}
return $posts;

使用 with 语句一行代码即可。

return $this->db->post->where('name', 'qiujin')->with('comment')->find();

对比就可以知道常规写法不仅嗦,而且低效,因为常规写法执行了 1+N 次 SQL。

而 with 语句简洁明了,查询 post 数据后,在把 post 数据中的 id 抽出组成 where in 查询 comment 表数据,最后把 comment 数据组合分配给 post 返回,其中只执行了 1+1 次 SQL,比常规写法效率高很多。
去搜了下 Zend DB 子查询的实现 https://stackoverflow.com/questions/1340564/writing-a-subquery-using-zend-db
得分最高的回答的演示代码的其中一行。
->where('sles.id = (SELECT MAX(id) FROM sle_instances WHERE sle_id = sles.id)')
我去这算什么,这个直接写 SQL 有什么区别。
@explon 没怎么用过 zendframework,特意跑去看了下 https://docs.zendframework.com/zend-db/,还真没看出来 Zend DB 在联表查询方面强在哪儿(且不说它实现过于臃肿),query builder 常用的 select where order limit 等方法大部分框架和库都大同小异不一定谁比谁强,至于联表查询我找了半天找到了一个 join,看看它的写法$select -> join('table1','table2.field2= table1.field1'),table2.field2= table1.field1 是什么鬼到底是原生 SQL 还是 query 语法,混在一起不伦不类,还不如直接写 SQL,还有子查询 一对多 多得多的联表查询方法在哪我也没找到。
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2911 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 17ms UTC 14:18 PVG 22:18 LAX 07:18 JFK 10:18
Do have faith in what you're doing.
ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86