V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fucktwice
V2EX  ›  PHP

高级PHP方面的技术方向是怎么样的? 类似与Symfony这种纯逻辑的框架? 还是 yaf,swoole,hiphop这种 以加速为主要目的的,基于底层的技术框架流派?

  •  
  •   fucktwice · 2013-08-06 14:21:50 +08:00 · 11180 次点击
    这是一个创建于 4132 天前的主题,其中的信息可能已经有所发展或是发生改变。
    这两种 我现在不是很清楚 哪个算是正道, 之前有底层的基础,现在接触的是企业级的php框架,
    我想选择,不知道怎么选择,求大神拍砖!!!
    16 条回复    2016-03-17 20:45:07 +08:00
    darasion
        1
    darasion  
       2013-08-06 15:16:12 +08:00
    我认为,就 php 来说,

    如果追求技术,最终你会回归到 Linux 下的 C/C++ 语言,一定要学好它们。
    如果追求更高的职位,无所谓,任何一个方面做得灵活并且足够好即可。
    BeijingBaby
        2
    BeijingBaby  
       2013-08-06 15:21:52 +08:00
    读懂Symfony
    fucktwice
        3
    fucktwice  
    OP
       2013-08-06 15:48:40 +08:00
    @darasion 但是 现在 symfony cakephp 他们不做扩展,而且性能也还可以,可以用redis之类的辅助,为什么还是 要往下沉呢?
    fucktwice
        4
    fucktwice  
    OP
       2013-08-06 15:50:56 +08:00
    @BeijingBaby 我觉得读懂是不可能的,在会用和懂设计想法的基础上去 思考 利用设计模式来实现的方法。
    不知道你怎么看?
    scourgen
        5
    scourgen  
       2013-08-06 15:53:05 +08:00
    从问题里就能看出LZ连基础概念都没搞明白,问这问题是不是早了点?

    Symfony是重量级的用PHP语言写出来的开发框架。
    yaf也是一个框架,但它实现的原理是把自己封装成了一个php的扩展,从而可以让性能达到较高的标准。
    swoole没有接触过,但看起来就是一个比较一般的开发框架。
    hiphop是facebook开发的一种加速php执行速度的编译方案,原理是把php代码编译成为执行文件后并直接运行,从而达到加速的效果。

    这四个完全是不同的东西。。。
    scourgen
        6
    scourgen  
       2013-08-06 15:56:29 +08:00
    @fucktwice “性能”这个东西是相对的,大型系统中真正用在前台业务逻辑处理上的时间不会应为框架的优劣而有非常显著的区别。而Symfony之类的框架优势就在于可以提高开发速度的同时支持业务逻辑的快速变化和发展。这个是一般框架或者不用框架所无法实现的
    fucktwice
        7
    fucktwice  
    OP
       2013-08-06 15:56:55 +08:00
    @scourgen swoole 是 腾讯的 一个php框架, https://github.com/matyhtf/swoole 但是在我看来还是两种,一种是接底层的,一种是接php 系统api的 。不知道哥你怎么看?
    scourgen
        8
    scourgen  
       2013-08-06 15:58:51 +08:00
    @fucktwice 弟,你用的名词我理解不了啊,什么叫接,什么是底层什么是系统api啊,你能不能用计算机专用的语言重新梳理一下啊。
    fucktwice
        9
    fucktwice  
    OP
       2013-08-06 16:08:48 +08:00
    @scourgen 就是 一个 需要调用系统的C语言层面上的接口,类似yaf成为php的扩展,编译成so文件,swoole利用系统的pthread,epoll实现了 多路复用甚至自己实现了web server,但是像yii,zendframework symfony 2是基于php语言的接口,没有重新的编译,就像你说的,他仅仅是一个框架,我就是想问这两种,哪一种才算是php的高级技术?
    老外,特别是欧洲的,他们都专注于框架,而没有自己去做什么扩展,除了FB,把PHP再变成二进制的代码。

    我就疑问,怎么选择,各自的出路在哪里?
    bsbgong
        10
    bsbgong  
       2013-08-06 16:19:28 +08:00   ❤️ 1
    框架是一种“你可以在它的基础上做你自己东西”的东西。根据这个定义,框架分为两种:开发框架(symfony等),应用框架(magento等)。
    LZ感受一下二者的区别。
    框架都是浮云,无非是结构规范、稳定可靠、扩展便利。
    干货是,深入了解语言特性、优缺点、各种场景下的设计、实现和应用效果,说到底都是深入分析之后的经验累积。就这,怎么着也得4-5年左右的时间。然后就成为高级了。
    hiphop是个工具,不是框架
    至于与底层结合、优化目的的一些扩展,如果你手上的项目有那个条件、有那个需求的话,可以去深入做。否则的话,我是不会去涉及的。
    scourgen
        11
    scourgen  
       2013-08-06 16:28:27 +08:00   ❤️ 3
    都算,只不过方向不同罢了,不能说哪个就比哪个更高级一点。具体用什么看你自己的业务场景和公司的发展方向。

    sf2之类的框架适合那种业务逻辑比较复杂,变化比较大的项目,因为它是重量级的框架,在项目初期可以让你用很快的速度开发出一个还不错的网站来,各种第三方bundle可以加速你的开发,整个项目的代码结构也非常清晰,各种功能一应俱全,只要用就是了。等项目发展到中期,它又可以让你以很小的代价去做各种功能的变更及调整,比如自动更新数据库,各种services的支持等等,而项目发展到后期,它也可以让你在不改变代码的基础上做很多优化工作,逻辑什么不用动,性能刷的就上去了。

    swoole我没研究过不好说,但不推荐去用,毕竟市面上的案例太少了,出了点什么问题怕你自己是搞不定的。

    yaf用在一些对性能非常苛刻的环境里,但问题就是这东西虽然快但很糙,各种复杂的业务逻辑你得自己写,它帮不了你什么,据我所知新浪微博在用。

    hiphop你照着教程做一遍,会用就可以了,它顶多算个工具,在你实在没有办法再去做优化的时候,把它祭出来做最后的尝试。就这么点用途而已,不用去多想,你自己实现一个的可能性也不大。
    suziewong
        12
    suziewong  
       2013-08-06 21:53:12 +08:00
    @bsbgong+1
    我觉得更加偏向于性能了,一种解决方案。PHP好的框架太多了,我想每个PHPer到后面都会有自己的框架+自己的一套库,便于自己快速开发。

    你想鸟哥加入PHP开发组了,为PHP5.5 5.6写新的语言特性,提高PHP的语言性能和增强试用场景。
    nofeeling
        13
    nofeeling  
       2013-09-11 22:48:29 +08:00
    @scourgen 不赞成你的观点,新技术都是需要去探索的。如果都是大家熟悉的东西,那就不是新技术了。
    Swoole框架可以说是腾讯流传出来的技术,有过大规模集群的验证。远远比Yar靠谱的多。

    目前已经有多家游戏开发的公司在使用Swoole。Web开发方面因为大家都已经习惯LAMP模式了,所以Swoole应用的方面并不多。
    nofeeling
        14
    nofeeling  
       2013-09-11 22:53:16 +08:00
    Symfony、Zend Framework这种是传统的PHP代码框架,和Swoole比的话算不上太大的技术创新。
    hiphop/hhvm技术方面比较深入,需要有C++的功底。目前来看和Zend PHP有很多不兼容的地方。比如链式调用,魔术方法的都不支持。
    scourgen
        15
    scourgen  
       2013-09-23 10:49:33 +08:00 via iPad
    @nofeeling 技术是需要去探索的,但不是所有项目和开发者都有去探索的时间,面对一个陌生且知名度不高的新生事物,并不是所有人都有勇气敢在新项目中去尝试的,而即使希望去尝试,也至少会需要有成熟的文档和社区支持,以接答使用中的种种问题,否则碰到问题的话该如何是好?

    游戏应用多半是用php做接口开发,程序中大量的代码都直接是业务逻辑,而事实上web开发要复杂得多,例如表单处理,页面模版渲染,多语言,acl等等,这些都是一个框架需要去抽象但是游戏接口却不大用得到的领域,所以与其说"很多游戏开发公司在使用swoole",不如说"swoole只适用与游戏开发"。
    thenbsp
        16
    thenbsp  
       2016-03-17 20:45:07 +08:00
    我用 Symfony 也不算短了,那天面试那人跟我说,既然都工作 5 年了,为什么还要关注使用什么框架呢?框架再牛逼也只是写个业务逻辑,真正往高级走要研究怎么解决大并发和底层实现和优化,我顿时不知道怎么回复了,以上只是我一个真实的经历。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3155 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 14:31 · PVG 22:31 · LAX 06:31 · JFK 09:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.