我是CI的新手。之前我在RoR和Symfony上有很多工作经验。
我无法理解为什么CI提供Library和Models。我检查过的大部分CI代码通常将Library用作Model的包装器。 Models专门用于与数据库通信。
有人可以解释一下吗?
我是CI的新手。之前我在RoR和Symfony上有很多工作经验。
我无法理解为什么CI提供Library和Models。我检查过的大部分CI代码通常将Library用作Model的包装器。 Models专门用于与数据库通信。
有人可以解释一下吗?
可能还有其他观点,但在我看来是这样的:
模型与您的应用程序紧密结合,直接引用您的数据库架构/文件路径等。
库松散耦合。它们应该像第三方附加组件一样对待,并且不应对您的应用程序或系统做出任何假设。您应该能够随意“插入”库,并进行最少量的配置。实际上,相反的情况应该成立,即库文件夹中的项目可以被放置到任何其他CI应用程序中。
<?php defined('BASEPATH') OR exit('No direct script access allowed');
class Library{
public function MyFunction(){
//do something...
}
}
...以及模型的解剖结构
<?php defined('BASEPATH') OR exit('No direct script access allowed');
class User_model extends CI_Model {
public function __construct(){
parent::__construct();
}
public function MyFunction(){
//do something...
}
}
在大多数情况下,模型准备使用资源来访问数据库或其他功能。而库则不会。如果您需要它们,您需要手动包含或扩展资源:
//Create an CI instance
$CI =& get_instance();
库是工具集和函数扩展,而模型则非常适合抽象和与来自数据库的数据进行交互。