4.4. Model

4.4.1. SqlMap
4.4.2. DAR(Database Active Record)

我们现有的模型并未有严格的规定,可以选择实现IModel接口,也可以是任意的类型(如string,array,object...)的数据。

IModel提供了简单的存储数据的方式,IModelAdapter是它的一个适配器,它提供了三个方法:

void addObject (sString $objectNamemixed $object//添加一个对象
mixed getObject (string $objectName//取得一个对象
array getObjectMap () //取得对象列表

记住,目前它只是一个对象容器,在绝大多数情况下,你可以使用一个数组代替它。

SqlMap和DAR是I-F提供的两个操作数据库模型的工具,简单易用,功能强大,又不无需大量的配置。

4.4.1. SqlMap

I-F中的sqlmap是模仿 IBATIS(JAVA开源项目,http://ibatis.apache.org/ )的实现SQL查询的模块,它的特色是将SQL语句分配一个ID并写入统一的一个或多个XML文件中,然后程序中就可以根据此ID进行查询。由于底层实现是利用PDO,所以它可以支持大多数流行数据库(oracle,mysql,sql server...)。它避免了在程序中直接写入SQL造成难以维护的状况。具体请参见[sqlmap]一章。

4.4.2. DAR(Database Active Record)

dar是I-F从0.0.3版本开始支持的O/RM工具,可以实现模型(PHP Class)和数据库表(mysql等)之间的映射,只需要简单的对模型的配置,即可实现绝大多数需求(比如CRUD、事务、分页等等)。我们也提供了生成模型的命令行工具(具体请参见[命令行工具]),极大地节省了程序员的时间。关于dar更多细节请参见[dar]一章。