[原] 关于PSR

总述,共0-18 个规范

第一部分: 废弃或未通过的

    包括 PSR 0, PSR 5, PSR 8, PSR 9, PSR 10, PSR 14 

第二部分: 关于编码风格

    包括 PSR 1, PSR 2, PSR 4, PSR 12 . 一定要一起看.

    这里的风格要求, 只要你使用了合适的代码编辑器,比如PHPStorm, 有自动代码格式化功能,就都可以. 如果你还在用记事本写代码,那么 我可以给你立个墓碑了.

    开发人员要养成 保存前自动格式化的习惯. 或者让编辑器自动进行格式化工作.  PHPStorm中包含的SVN就有这个选项:提交前自动格式化. 

    还有一点要注意, PSR2中要求文件最后有一个空行, 但这个要求在后面的规范中被否定了. ~~~~  我学习这个规范时,学到这一步时,费了很大的力气把我的PHP文件都加了一个空行~~~~~~  

    TAB与四个空格 , 这个编辑器可以自行处理.  PHPStorm 按下TAB,会自动用空格对齐. 所以放心大胆的按TAB吧. 这个快啊.

    原来我的类命名是用的自有规则 C开头的是控制器,M开头的是模型,....   

    现在按规范改过来了, 把自己的自动加载方法也删除了, 全用了 PSR规范中的自动加载. 还是很方便的. 

    命名空间,这个东西还真是有必要的. 因为好名字都被系统函数/系统类给占用了. 我也想用啊.

    所以,我给自己的框架起了个命名空间 \icePHP , 然后我认为我应该有 框架核心类,还有一些不太重要的扩展类, 我又创建了两个二级命名空间  \icePHP\Frame ,  icePHP\Enhance,  然后是三级命名空间,....

    强制类型约束   declare(strict_types=1);
    这个东西也真心好. 我也希望大家给所有的变量加上类型, 代码在敲出来前,应该先成型于脑海中.  同样,变量在使用前,应该先有一个类型. 

    参数类型与返回值类型

    我在我的代码中尽量指明, 但实际上,有些遗留代码 会允许一个变量可能是多种类型, 这个很不方便. 

    变量如果有了类型,尤其是对象 , 那么 编辑器就可以自动列出可使用的属性与方法. 这个不仅让我们少敲代码,而且还减少出错机会.

    说到类型,我就要说一下容器.  个人是极为反对使用容器的, 用容器中 取回的 对象 是什么类型??? 容器这东西对 代码自动 提示, 代码跟踪, 造成极大的困扰.  简直是反人类. 

第三部分 日志 及缓存 

    日志对应PSR3 ,实现很简单, 只要扩展一下AbstractLogger类,并实现log方法即可. 也可以使用第三方的日志库. 我用了自己的库, 主要是写到文件里,以后可以扩展 发微信 或者 打电话. 

    缓存对应PSR 6 和 PSR 16 , 其中16是个简化版, 6的实现很费劲, 我在开发过程中遇到很多问题, 其中一些问题想出了解决方案,还有一些问题找不到解决方法,如: 多个应用实例之间的缓存信息一致性问题; 查看已有缓存项等.  然后我去查看了 别人的实现 代码, 发现 我能解决的,别人也解决了,方法也雷同, 我解决不了的,别人也解决不了.  最后我决定 放弃自己的实现 方案, 挑选了 Symfony的类库. 

第四部分 其它 

   HTTP 消息 的发送与处理,这对应PSR 7, PSR 13 和PSR 15, PSR 17, PSR 18. 我采用了第三方类库 , sunrise 的. 

   至于 容器,我个人暂不打算在框架中应用,就没理会. 

    

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值