对于数据库关系模型的分析,我觉得需要从两个函数说起:
1. //获取一个模型
2. function &m($model_name, $params = array(), $is_new = false)
3. {
4. static $models = array();
5. $model_hash = md5($model_name . var_export($params, true));
6. if ($is_new || !isset($models[$model_hash]))
7. {
8. $model_file = ROOT_PATH . '/includes/models/' . $model_name .
9. '.model.php';
10. if (!is_file($model_file))
11. {
12. /* 不存在该文件,则无法获取模型 */
13. return false;
14. }
15. include_once($model_file);
16. $model_name = ucfirst($model_name) . 'Model';
17. if ($is_new)
18. {
19. return new $model_name($params, db());
20. }
21. $models[$model_hash] = new $model_name($params, db());
22. }
23. return $models[$model_hash];
24. }
25. //获取一个业务模型
26. function &bm($model_name, $params = array(), $is_new = false)
27. {
28. static $models = array();
29. $model_hash = md5($model_name . var_export($params, true));
30. if ($is_new || !isset($models[$model_hash]))