php新开发模式的尝试
php 程序执行的所有的异常都使用throw 抛出,无论控制器器层、模型层、数据层都是直接抛出异常。 系统顶层提供一个统一捕获错误的地方。如果异常是可以接受的,在任意层都可以自己写 try … catch 把异常截住。
例如:我现在项目是要求数据层数据为空是都要求抛出’对象不存在的’ 的异常,当模型层觉得对象确实可以不存在时,在模型层就能把这个错误截止住。同理,有些异常需要特殊处理时,也可以自己加上特殊异常的处理。
程序只用分开发模式和运营模式就足够。定太多状态反而容易弄出很多混乱。开发模式下需要提供详细的错误信息,并且可以使用debug类记录当前一些状态。 这样运营时,只用改一个模式的值就行了。
模型的增、删、 改 需要提供统一名称。 这样控制器中可以做很多很自动的功能。
框架和插件使用spl_autoload去自动包含所需要的类,其他开发者就不需要使用requrie去包含文件了。
文件数据读取都封装好一个数据类,其他开发者都不用使用路径相关东西。
一些对象要求实现 spl 数组的数组接口。这样就可以做到使用isset($user[$user_id])去判断用户是否存在,使用unset去删除数组,memecache 就像使用数组一样简单。这样代码足够简单,而且易懂。
框架的作用就时为开发很容易,更快捷,更稳定。 程序员只要关注代码逻辑就好了,其他就交给框架来做。
ps . 以前开发ecshop 时,很多底层的东西都要自己考虑,堆功能时,每个功能都写了很多代码。新增功能的成本太搞了。举例来说,支付插件那一块,归纳一些,发现不同的支付插件只是参数不同,以及支付网关不同,可是写插件时我却得把整个流程再写一遍。当你需要大量使用ctl+c 和 ctl + v 时,是否就该考虑把这些东西整理到支付插件的公共代码中了(也就是我的框架概念)。不过能放到公共库里的代码必须是功能够简单,够基础。 必要的逻辑判断必须放原来代码,这样才能保证框架够灵活。