V2EX 首页   注册   登录
 gavinczhang 最近的时间轴更新

gavinczhang

学负五渣
  •   tencent / 应用开发
  •   V2EX 第 93313 号会员,加入于 2015-01-23 15:42:15 +08:00
    gavinczhang 最近回复了
    @ywisax 你没仔细看。。。是 swoole framework 不是 swoole 扩展
    @deepkolos 最初是一个 curl.php ,后来想了想把他拆分了,但是这个还没删。。
    @deepkolos 谢谢交流
    我的思路是把 curl 分成三部分
    option、request 和 response
    option 用来快速构造 curl_option 数组
    request 可以支持并发 /单独调用 curl
    response 去做结果
    近期会重构这部分代码
    @kancloud 第一点表示认同,但是我认为框架应该把调优的设置尽可能简洁,比如一个 debug 开关?毕竟不是所有人都能立刻找到所有框架的细节差异,再去针对性调优的,都需要不断学习了解。
    第二点和第四点表示不认同,在绝大多数开发场景下,大部分框架提供的很多工具其实根本用不到,没必要为了在某些情况下可能用到的东西而提前做大的集成,这些完全可以在实际项目开发过程中通过 composer 找一些相关成熟的组件来解决。比如 YII 集成的 jQuery,比如 laravel 集成的和模板关联的表单验证。相信大部分的工作项目中,前后端足够分离的情况下,并用不到这些功能。至于模板引擎,并不能带来多少性能的提升,相反还需要前后端开发同学去学习一门只有此框架才用得到的新语法,得不偿失,php 语法本身就可以做到这些功能。
    第三点,如果我没有理解错的话,提前定义好 interface,通过配置或变量的不同,创建不同的对象并注入 IoC 中,上层使用仅需要使用 IoC 中的对象即可。但是日常开发中偶尔能遇到适合这种场景的业务开发,但是框架层面,请恕我愚钝,暂时没有体会到 DI 和 IoC 为框架带来的优势,比如如果需要从 mysql 换到 oracle 或者 mysqli 换到 PDO ?但是我认真的思考过,这类庞大、重要到需要一整个团队去支撑的事情,又有多少人真的用到过?当然也可能是我的理解错了,对 DI 和 IoC 的使用场景搞错了。烦请指点,多谢。
    @jhdxr 确实没有,laravel 还有哪些可以关闭的,我关一下再看看?因为对 laravel 不熟,只是看文档写了 hello world,没有仔细找相关调优的文档。非常感谢
    @sagaxu 是的,近期我重跑一次
    @sagaxu 跟机器配置的 fpm 运行数等有关,不过在同样配置环境下看两者差距即可。另外当时压测时没有开启 opcache
    http://docs.phpcomposer.com/01-basic-usage.html#Autoloading
    你可以在 composer.json 里写自己的 autoload 规则呀

    比如
    "autoload" : {
    "psr-4" : {
    "UserProfile\\": "src/"
    }
    }
    然后 composer update 一下,生成的 vendor/autoload.php 里,会默认把 namespace 为 UserProfile 的类库去 src/目录下按 psr-4 规则查找的。。

    更详细的参考文档: http://docs.phpcomposer.com/04-schema.html#autoload
    还支持 classmap 等多种自加载规则
    2016-07-20 18:55:55 +08:00
    回复了 livedutvchina 创建的主题 PHP 如何选择 PHP 框架?
    我认为框架只要提供好几个功能点就足够了

    1. autoload
    2. dev/pro 分离(包括 config 自动载入不同目录下)
    3. mvc (不需要所谓的 Smarty 等模板引擎, php 语法足够优秀易懂)
    4. db/redis/orm ( ORM 可以实现读写分离,锦上添花而已,毕竟有中间层可以更专业的解决这个问题)
    5. router

    另外我对一些主流框架(官网提供的最新版)做了性能压测
    CodeIgniter 、 yaf 、 yii 、 laravel 、 swoole framework 、 kohana 、 thinkphp

    把框架独立到某目录下,其他项目的入口文件统一读取此目录内的框架资源
    controller 中载入 view 并传递 title , view 中直接 echo $title ,关闭 debug 等其他调试开关

    php7 环境下, 2.5GHZi7 16G 内存
    siege -c 500 -t 5s 并发 500 持续 5s

    结果:
    yaf 1600>swoole 1400>ci 600>thinkphp 280>kohana 277>yii 205>laravel 76
    (自己基于上述的 5 个观点开发的小框架,压测性能达到 1500 )

    仅供参考。

    详情:
    http://blog.bingxuecandong.com/?p=262
    DigitalOcean
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   1799 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.0 · 30ms · UTC 12:14 · PVG 20:14 · LAX 04:14 · JFK 07:14
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1