怎么一步步编写简单的PHP的Framework(十六)
今天回来的比较晚,本来准备用UML画一下模型这一块儿的关系,但是没有时间搞了,只有用PS搞了一个简单的事例。 我把模型分成了几块儿,A,B,C,D,E,F,这几块儿分别代表了什么呢? 首先A,这个Base代表的就是整个框架的基类,所有的模型文件都必须继承自这个基类; 由于B的内容需要依赖D,所以先说一下D,D首先有一个ConnectionManager,它负责管理数据库的连接和关闭还有数据库驱动的选择,这个命名自己感觉不太好,先就将就吧,既然它负责数据库的连接和关闭,肯定它就有以下方法: <?php public class ConnectionManager { public static function getConnection(){} public static function releaseConnection() {} } 由于数据库的连接对于所有模型来说都是共享的,所以我们把ConnnectionManager设置为单例。 D中右边有PDO,MYSQL_*,这代表什么意思呢,实际上就是代表各种驱动,有可能你使用的是比较先进的PDO,也有可能你使用的是比较老的MYSQL_*这种,也有可能你使用的是mysqli,ADO等等,正是由于PHP数据库这一块儿的混乱情况,我们需要在框架中定义一个契约,所有的驱动类按照这个契约编写实现,这样,不管驱动类的底层实现怎样