7个使用Symfony的理由

admin 提交于 周一, 11/23/2015 - 18:42

1. 这是一个被很多其它著名框架或PHP应用所使用的框架

包括Drupal、phpBB、Laravel、Joomla、Composer、Magento、Piwik。

2. 教程和demo写得非常好

教程不但解释用Symfony怎样用,还通过很易懂的方式解释了Symfony的原理、HTTP的基本知识、MVC的概念等,并且不会令有经验的程序员觉得教程冗长。Drupal和Laravel都使用了Symfony,但Drupal和Laravel的教程远没有Symfony解释得令人明白,学习Drupal和Laravel的时候是有必要把Symfony也学习一下的。

输入以下命令即可下载一个完整可运行的demo程序,方便的超乎想象。demo程序分前端和后端,并且每个页面都可展示当前PHP代码,非常直观,甚至决定很神奇。神奇的东西还有demo的数据库,它用了不需要服务进程的SQLite,让习惯了MySQL的程序员觉得这个PHP demo为什么有数据库功能而感到莫名其妙。demo的外观设计时尚,让人一看就觉得是现代互联网站风格。

symfony demo

标签

ab性能测试

admin 提交于 周六, 11/21/2015 - 23:45

Ab是Apache一个著名、简单易用的网站性能测试功能。 

ab -r -s 30 -n 1000 -c 40 <URL>

-c是并发量,-n是总请求数,-r是socket问题不要中止,-s是每个请求超时时间

有一个更好的替代工具apib

GoAccess

admin 提交于 周六, 11/21/2015 - 23:21

这是一个非常好用的,可以用于分析nginx access log的工具,能找出独立访问的IP、最多访问的页面、最多访问的静态文件。Ubuntu的软件库里自带,安装命令和用法是:

     

apt-get install goaccess

goaccess -f /var/log/nginx/access.log

goaccess -f allaccess.log -o /var/www/laravel/public/tmp/20161214.html --time-format="%H:%M:%S" --date-format="%d/%b/%Y" --log-format='%h %^[%d:%t %^] "%r" %s %b "%R" "%u"'

http://goaccess.io/

微信服务号怎样实现异步回复客服消息

admin 提交于 周五, 11/20/2015 - 18:49

为了避免回复超时,微信建议先回复success,再通过客服接口回复。一般情况下,PHP程序返回结果代表程序结束,但是下面的技巧可以让PHP程序返回结果后继续运算。

       

        // 立即返回
        ignore_user_abort(true);
        ob_start();
        // do initial processing here
        echo 'success'; // send the response
        header('Connection: close');
        header('Content-Length: ' . ob_get_length());
        ob_end_flush();
        ob_flush();
        flush();
        
        // 发送客服消息

标签

微信添加客服帐号接口61451错误的原因

admin 提交于 周五, 11/20/2015 - 17:57

该接口文档见:http://mp.weixin.qq.com/wiki/14/d9be34fe03412c92517da10a5980e7ee.html#.E6.B7.BB.E5.8A.A0.E5.AE.A2.E6.9C.8D.E5.B8.90.E5.8F.B7

报61451错误的原因可能有:

  1. 微信号不是认证的公众号
  2. 还没启用多客服插件(公众平台->功能->添加功能插件)
  3. 没有设置微信号(不是gh开头那个原始ID)
  4. 没有填写正确的微信号:"kf_account" : "test1@微信号"
  5. 密码没有用md5处理(32个字节的字符串)
  6. POST的JSON数据最后一行多了逗号(如果从API文档里复制粘贴这个JSON格式就中招了,我在这上面浪费了一个小时……)

标签