码迷,mamicode.com
首页 > Web开发 > 详细

ThinkPHP开发笔记

时间:2015-05-30 07:03:33      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:

1、模型定义。在ThinkPHP中,可以无需进行任何模型定义。只有在需要封装单独的业务逻辑的时候,模型类才是必须被定义的,因此ThinkPHP在模型上有很多的灵活和方便性,让你无需因为表太多而烦恼。

模型类通常需要继承系统的\Think\Model类或其子类,下面是一个Home\Model\UserModel类的定义:

namespace Home\Model;
use Think\Model;
class CategoryModel extends Model {
    protected $trueTableName = top_categories; 
    protected $dbName = top;
}

2、模型实例化。根据不同的模型定义,我们有几种实例化模型的方法,根据需要采用不同的方式:

(1)直接实例化。可以和实例化其他类库一样实例化模型类,模型类通常都是继承系统的\Think\Model类,例如:

$User = new \Home\Model\UserModel();
// 带参数实例化
$New  = new \Home\Model\NewModel(blog,think_,$connection);

(2)D方法实例化。D方法可以自动检测模型类,如果存在自定义的模型类,则实例化自定义模型类,如果不存在,则会实例化系统的\Think\Model基类,同时对于已实例化过的模型,不会重复去实例化。

$User = D(User);

(3)M方法实例化。D方法实例化模型类的时候通常是实例化某个具体的模型类,如果你仅仅是对数据表进行基本的CURD操作的话,使用M方法实例化的话,由于不需要加载具体的模型类,所以性能会更高。

$User = M(User);

(4)实例化空模型类。

//实例化空模型
$Model = new Model();
//或者使用M快捷方法是等效的
$Model = M();
//进行原生的SQL查询
$Model->query(SELECT * FROM think_user WHERE status = 1);

3、数据库连接信息。系统默认会读取配置文件中的相关参数,包括:

DB_TYPE      =>  ‘‘,     // 数据库类型
DB_HOST      =>  ‘‘,     // 服务器地址
DB_NAME      =>  ‘‘,     // 数据库名
DB_USER      =>  ‘‘,     // 用户名
DB_PWD       =>  ‘‘,     // 密码
DB_PORT      =>  ‘‘,     // 端口
DB_PREFIX    =>  ‘‘,     // 数据库表前缀
DB_DSN       =>  ‘‘,     // 数据库连接DSN 用于PDO方式
DB_CHARSET   =>  utf8, // 数据库的编码 默认为utf8

上面实例化方法中直接实例化和M方法实例化,都可以传入数据库连接信息。数据库连接信息参数支持三种格式:

(1)字符串定义

new \Home\Model\NewModel(blog,think_,mysql://root:1234@localhost/demo);

(2)数组定义

$connection = array(
    db_type    =>   mysql,
    db_host    =>   127.0.0.1,
    db_user    =>   root,
    db_pwd     =>   12345,
    db_port    =>    3306,
    db_name    =>    demo, 
);
new \Home\Model\NewModel(new,think_,$connection);

(3)配置定义

//数据库配置1
DB_CONFIG1 => array(
     db_type  => mysql,
     db_user  => root,
     db_pwd   => 1234,
     db_host  => localhost,
     db_port  => 3306,
     db_name  => thinkphp
),
//数据库配置2
DB_CONFIG2 => mysql://root:1234@localhost:3306/thinkphp,

然后,我们就可以这样实例化模型类传入连接信息:

new \Home\Model\NewModel(new,think_,DB_CONFIG1);
new \Home\Model\BlogModel(blog,think_,DB_CONFIG2);

 

ThinkPHP开发笔记

标签:

原文地址:http://www.cnblogs.com/NaughtyBaby/p/4539716.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!