大家写 php 代码都用哪一套编码规范?你们都了解自己的编码规范的好处吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tonitech
V2EX    PHP

大家写 php 代码都用哪一套编码规范?你们都了解自己的编码规范的好处吗?

  •  1
     
  •   tonitech 2014-05-28 01:51:17 +08:00 6609 次点击
    这是一个创建于 4157 天前的主题,其中的信息可能已经有所发展或是发生改变。
    昨天在公司跟同事们定编码规范,我一直采用的是PSR-2的规范,我推荐使用它。而有些同事无法接受class和function后面的花括号另起一行,我们陷入了争论之中,我也想不出为什么class和function后面的花括号要另起一行,有什么好处?

    我的想法是既然是团队协作开发,那我们必须要有一套自己的规范标准,不能因为不喜欢而不使用。规范就像宗教信仰,你要有自己的信仰,就得找到一个信奉的神灵。
    40 条回复    2014-08-16 17:56:32 +08:00
    lm902
        1
    lm902  
       2014-05-28 02:30:45 +08:00
    我表示格式都是Visual Studio给我自动改的,无论我是怎么写的都会自动改过来
    tonitech
        2
    tonitech  
    OP
       2014-05-28 02:34:23 +08:00
    @lm902 你用vs不是写php的啊
    lm902
        3
    lm902  
       2014-05-28 02:35:45 +08:00
    @tonitech PHP也有啊
    tonitech
        4
    tonitech  
    OP
       2014-05-28 02:39:33 +08:00
    @lm902 对啊,用Zend Studio有format功能,里面可以选择format的code style,就有PSR-2选项的,但是有人不喜欢这个规范。。。
    yangqi
        5
    yangqi  
       2014-05-28 02:41:32 +08:00
    感觉花括号最不重要,重要的是命名规范
    lm902
        6
    lm902  
       2014-05-28 02:43:16 +08:00
    @yangqi 命名规范+1
    lm902
        7
    lm902  
       2014-05-28 02:44:02 +08:00
    要不然写出 com.Company.name_space.classname().methodName()就233了
    xuwenmang
        8
    xuwenmang  
       2014-05-28 07:10:35 +08:00
    没好处!
    1、显示器越来越扁,起始花括号另起一行?不觉得占行数啊。
    2、起始花括号起的是承上启下的作用,在同一行,非常明确是属于哪个逻辑。而另起一行,感觉生生被剥离了这种关系。
    3、其实我是看了2天drupal的代码,习惯了!但是上面两条是非常明确地。
    holystrike
        9
    holystrike  
       2014-05-28 07:44:58 +08:00 via iPhone   1
    Class function namespace 另起一行是为了区分逻辑代码,因为这哥仨是语言结构,不是逻辑,
    if else switch while 才是逻辑,一眼看到起头花括号起头了,表示接下来是一个代码段,看到在屁股后边,那么接下的代码就表示程序要进行逻辑上的处理了
    lm902
        10
    lm902  
       2014-05-28 08:14:49 +08:00
    <?
    class Example
    {
    /// <summary>
    /// Fxck the $target
    /// </summary>
    function Fxck ($target)
    {
    echo "$target is fxcked."
    }
    }
    ?>
    表示我差不多就是这样写PHP
    kslr
        11
    kslr  
       2014-05-28 08:44:48 +08:00
    PSR-2 函数重启一行,其他均为屁股后面。
    tonitech
        12
    tonitech  
    OP
       2014-05-28 09:09:31 +08:00
    @holystrike 谢谢!
    hellov22ex
        13
    hellov22ex  
       2014-05-28 09:11:06 +08:00
    8楼的哥们是逗人么,第一条就在瞎掰
    mahone3297
        14
    mahone3297  
       2014-05-28 09:19:36 +08:00
    又是一个争论贴?
    我觉得psr-2规范挺好。。。。我也比较喜欢class, function 花括号换行。。。
    icanfork
        15
    icanfork  
       2014-05-28 09:20:14 +08:00   1
    @hellov22ex 哈哈,会引发决斗的

    我写PHP这样
    function func()
    {

    }

    写前端这样:
    function func(){

    }
    ichou
        16
    ichou  
       2014-05-28 09:22:48 +08:00
    @belin520 握爪
    zjdboy
        17
    zjdboy  
       2014-05-28 09:24:41 +08:00
    你为什么不自已改变规范,改变信仰
    tonitech
        18
    tonitech  
    OP
       2014-05-28 09:34:40 +08:00
    @zjdboy 因为不满意的是少数人。
    micate
        19
    micate  
       2014-05-28 09:46:21 +08:00
    不接受就开掉换个能接受的好了。
    kakaryan
        20
    kakaryan  
       2014-05-28 09:49:31 +08:00
    总有人的意见不一致的.关键是要确定一个代码规范,不通过代码规范检查不能提交代码,就算绕过代码规范检查,合并代码上线的时候也需要做检查,不符合规范不允许提交.形成规范代码的习惯才是目的.
    muziyue
        21
    muziyue  
       2014-05-28 09:51:24 +08:00
    花括号换行党和不换行党又要开始战争了吗
    qq286735628
        22
    qq286735628  
       2014-05-28 09:54:13 +08:00
    看到PHPStorm里面的被打了颜色,就会想办法把颜色给搞掉,不管是warn还是notice,看着想牛皮藓一样,很不爽
    csx163
        23
    csx163  
       2014-05-28 09:56:36 +08:00
    都看得懂,为何分换行不换行呢,程序员何苦为难程序员
    teavoid
        25
    teavoid  
       2014-05-28 10:34:02 +08:00
    花括号真心不应该是争论的重点...
    akira
        26
    akira  
       2014-05-28 11:02:04 +08:00
    同意25楼。
    换行什么的,不都是代码格式化工具做的事情么。
    luoyou1014
        27
    luoyou1014  
       2014-05-28 11:15:07 +08:00
    换不换行没规范不要紧, 最多是眼睛看着略微不舒服.

    重要的应该是命名啊, 下划线和驼峰式也不用太纠结, 主要是严禁各种缩写命名, 拼音命名.

    被缩写命名坑的悲伤, 其他的压根不算事……
    t2doo
        28
    t2doo  
       2014-05-28 11:39:10 +08:00
    已经习惯成这样了function(){
    }

    改不掉了
    Comdex
        29
    Comdex  
       2014-05-28 11:53:34 +08:00 via Android
    用golang就不用争了,哈哈
    cevincheung
        30
    cevincheung  
       2014-05-28 11:55:19 +08:00
    纯小写+下划线


    class my_class {
    ....
    }
    function my_func() {
    ....
    }
    markmx
        31
    markmx  
       2014-05-28 11:58:18 +08:00   1
    自动排版 不纠结。。
    hellov22ex
        32
    hellov22ex  
       2014-05-28 12:00:31 +08:00
    @belin520 同样,但是我觉得我还是去Delphi好,好歹是在和样子的
    procedure button1.Click.......
    const

    var

    begin
    end.
    wdkwdkwdk
        33
    wdkwdkwdk  
       2014-05-28 12:12:15 +08:00
    你的头像是锤子么
    tonitech
        34
    tonitech  
    OP
       2014-05-28 12:41:26 +08:00
    @wdkwdkwdk 是我自己设计的,里面是T。。。
    justfindu
        35
    justfindu  
       2014-05-28 12:47:25 +08:00
    表示不另起一行. 因为 (){} 这两都需要shift. 在一行的时候正好顺手就打出来了, 然后 ←,Enter. 不然需要 ←←,Enter.

    嗯 其他命名规范还是需要的.
    tang3w
        36
    tang3w  
       2014-05-28 12:53:51 +08:00
    @wdkwdkwdk 是我想多了吗...
    zxb888
        37
    zxb888  
       2014-05-28 17:27:22 +08:00
    我一般是这样的
    function func()
    { $ar36='0123456789abcdefghijklmnopqrstuvwxyz';
    ....
    }
    spoonwep
        38
    spoonwep  
       2014-05-28 18:20:08 +08:00
    phpstorm自动格式化……
    yakczh
        39
    yakczh  
       2014-05-29 07:48:28 +08:00
    转java或者python吧,golang 就不用纠结这么无聊的问题了
    aWangami
        40
    aWangami  
       2014-08-16 17:56:32 +08:00
    有办法改吗。真受不了!
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1024 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 22:48 PVG 06:48 LAX 15:48 JFK 18:48
    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