Php CodeIgniter框架中的库和模型有什么区别?
我是新来的。在此之前,我曾在RoR和Symfony广泛工作 我无法理解为什么CI提供了库和模型。我检查的大多数CI代码通常将库用作模型的包装器。模型专门用于与数据库对话Php CodeIgniter框架中的库和模型有什么区别?,php,codeigniter,Php,Codeigniter,我是新来的。在此之前,我曾在RoR和Symfony广泛工作 我无法理解为什么CI提供了库和模型。我检查的大多数CI代码通常将库用作模型的包装器。模型专门用于与数据库对话 有人能解释一下吗 关于这一点,可能还有其他的思想流派,但对我来说,是这样的: 模型 模型与应用程序紧密耦合,直接引用数据库模式/体系结构/文件路径等 图书馆 库是松散耦合的。他们应该被视为第三方附加组件,不应该对你的应用程序或系统做出任何假设。您应该能够使用最少的配置随意“插入”库。事实上,恰恰相反,您的库文件夹中的项目应该能够
有人能解释一下吗 关于这一点,可能还有其他的思想流派,但对我来说,是这样的: 模型 模型与应用程序紧密耦合,直接引用数据库模式/体系结构/文件路径等 图书馆
库是松散耦合的。他们应该被视为第三方附加组件,不应该对你的应用程序或系统做出任何假设。您应该能够使用最少的配置随意“插入”库。事实上,恰恰相反,您的库文件夹中的项目应该能够被放入任何其他CI应用程序。basci对库的想法是通过类扩展Codeigniter功能的一种方法
如果比较Codeigniter中的<强>库< /St>和<强>模型<强>的空白解剖结构,您将看到模型扩展<强> CiIOME < <强> >,这允许您访问CODEIGITITER的本地资源(例如$$->dB)。
图书馆不提供这种基本访问,也不需要通过CI_模型扩展它们 模型用于描述数据并与数据交互(主要是从数据库(如mysql)中提取) 查看基本库<?php defined('BASEPATH') OR exit('No direct script access allowed');
class Library{
public function MyFunction(){
//do something...
}
}
库是工具集合和功能扩展,而模型天生非常适合抽象和与来自数据库的数据交互。关于您对库的看法,我认为上述功能是通过“模块”实现的在CI中。@Akshar有时在概念上有一些重叠,但库可以被认为是一个基本上(如果不是完全)独立于特定CI应用程序的单例类。对于如何使用库没有严格的规则,但是如果您想了解库应该做什么,请查看一些本机CI库,如image_lib。
<?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();