没搞懂 PHP 的 PSR2 的规范? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jam1024
V2EX    PHP

没搞懂 PHP 的 PSR2 的规范?

  •  
  •   jam1024 2018-08-13 17:22:54 +08:00 4692 次点击
    这是一个创建于 2626 天前的主题,其中的信息可能已经有所发展或是发生改变。

    PSR2 里提到: 方法名称 必须 符合 camelCase() 式的小写开头驼峰命名规范

    但是 php 默认有一大堆不符合改规范的函数,如:

    file_get_contents , json_encode

    25 条回复    2018-08-25 16:22:14 +08:00
    zsdroid
        1
    zsdroid  
       2018-08-13 17:27:23 +08:00
    PSR2 针对 php 的,内置函数不是 php 开发的
    jam1024
        2
    jam1024  
    OP
       2018-08-13 17:28:30 +08:00
    @zsdroid 什么叫“内置函数不是 php 开发的”
    demonchang
        3
    demonchang  
       2018-08-13 17:30:44 +08:00
    你自己写的 php 要遵守这个规范。。
    zsdroid
        4
    zsdroid  
       2018-08-13 17:30:46 +08:00   1
    @jam1024 #2 内置函数是 c 开发的啊,更何况 php 出来的时候还没有 psr1 呢,难道出来一个规范就要把 php 全部重构吗
    feiyuanqiu
        5
    feiyuanqiu  
       2018-08-13 17:31:17 +08:00   1
    1. 制定 PSR 的 PHP-FIG 不是 PHP 官方组织,约束不到核心开发
    2. PHP 内置函数名是历史遗留问题,现今也没看到任何要整改的迹象,PHPer 不看重这个
    jam1024
        6
    jam1024  
    OP
       2018-08-13 17:32:16 +08:00
    @feiyuanqiu 编起码来感觉各种命名不一混用,有点蛋疼
    mjVtb96d2bap2u3Z
        7
    mjVtb96d2bap2u3Z  
       2018-08-13 17:34:23 +08:00 via Android
    PSR2 并不是 php 官方定的,最初只是几个开源开发者定的协作规范。后来其他开发者遵循这个规范带来很大方便,才逐渐流行开来。
    chinvo
        8
    chinvo  
       2018-08-13 17:34:36 +08:00
    原因就不说了,如果感觉不爽,可以用一个 helper function 把你要用的内置函数封装下
    WuwuGin
        9
    WuwuGin  
       2018-08-13 17:36:34 +08:00
    1.psr2 只是规范,不是一个强制标准
    2.php 的内置函数 != 方法
    3.php 历史遗留问题需要考虑兼容性。
    jam1024
        10
    jam1024  
    OP
       2018-08-13 17:46:12 +08:00
    @WuwuGin 了解了
    allgy
        11
    allgy  
       2018-08-13 18:34:20 +08:00
    内置函数开发的时候连 FIG 这个组织都没诞生
    sagaxu
        12
    sagaxu  
       2018-08-13 19:36:40 +08:00 via Android
    method 和 function 的要求是不同的
    pynix
        13
    pynix  
       2018-08-13 19:38:36 +08:00
    退坑保平安。
    SimbaPeng
        14
    SimbaPeng  
       2018-08-13 19:42:01 +08:00 via Android
    php 的宗旨是 freestyle,233333
    zn
        15
    zn  
       2018-08-13 20:12:47 +08:00
    哥哥,知道什么叫历史包裹,什么叫向后兼容性吗?
    hubqin
        16
    hubqin  
       2018-08-13 20:24:44 +08:00 via Android
    按我的理解,方法是指类的方法,和全局的函数是不一样的概念。
    shiny
        17
    shiny  
       2018-08-13 20:33:05 +08:00
    方法是 method, 函数是 function,用中文的时候稍不注意就会混淆两者。
    anewg
        18
    anewg  
       2018-08-13 20:36:31 +08:00
    对这个敏感的还是别用 php 了
    KgM4gLtF0shViDH3
        19
    KgM4gLtF0shViDH3  
       2018-08-13 21:01:25 +08:00 via iPhone
    @zn #15 是包袱吧
    ninerec
        20
    ninerec  
       2018-08-13 21:55:52 +08:00
    个人的理解以及基于其上的建议:
    1. 类似 PHP 的内置函数&自定义全局的 function,使用 snake_case ;
    2. 自定义的类.方法,方法名使用 camelCase;
    3. PSR 是用来约束社区&指导自己的编码规范的,别太纠结。
    zlhsvc
        21
    zlhsvc  
       2018-08-13 23:50:56 +08:00
    其实这个很随意的,公司统一下规范就好了
    Nick66
        22
    Nick66  
       2018-08-14 11:23:50 +08:00
    函数和方法还是有区别的,内置函数是历史遗留问题
    bapijun
        23
    bapijun  
       2018-08-17 11:56:54 +08:00
    php 函数哪个是遗留问题,没办法的事情,比这个更牛逼更操蛋的遗留问题有的是
    bapijun
        24
    bapijun  
       2018-08-17 11:59:13 +08:00
    psr 的意义,在于现在主流的 php 程序员都这么干,你看别人的代码这样写,自己的代码也这么命名,大家都舒服,
    hp66722667
        25
    hp66722667  
       2018-08-25 16:22:14 +08:00
    来搞 python 默认 a_b_c(),特别统一
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5430 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 07:36 PVG 15:36 LAX 00:36 JFK 03:36
    Do have faith in what you're doing.
    ubao msn 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