thinkphp框架应用小结

WBOY
풀어 주다: 2016-06-13 13:02:32
원래의
931명이 탐색했습니다.

thinkphp框架使用小结
以前写的,转到这里! 
   因为要开发项目,所以用TP来快速搭建,感觉对于中小型项目来说,TP还算一款不错的框架,轻量级,使用简单,开发快速,但是估计用到大的项目就不行了,抽空也看了下zend framwork 的用法,它的MVC思想运用的确比TP要丰富些,毕竟是世界上最牛的PHP框架,很不错,以后抽空要研究下,不过估计学起来两者大同小异,不过运行速度还是zend要胜出,人家的引擎还是巨牛的。

   对于TP来说印象最深的就是它的关联模型,数据库的关联在程序开发中是一个很重要的概念,一般都是表之间的ID关联,如果用传统的SQL语言来关联就要用JOIN ON以及LEFT JOIN 或是RIGHT JOIN来完成,往往增加了思考的复杂性,而TP对于这个流程进行了模块化封装,只需要将一些关键的属性显性的定义出来即可,打个比方:

例如一个表Profile的userId要关联Dept表的id字段

在模块中就如下定义:

protected $_link=array(

    'Dept'=> array(  

          'mapping_type'=>BELONGS_TO,  //映射类型,此处是属于的一对多关系

                   'class_name'=>'Dept', //要关联的数据表名(不含前缀)

                   'foreign_key'=>'userId', //Profile表中的与Dept表中id字段要关联的字段userId

                   'mapping_name'=>'dept', //映射名称,即在模板中要用到的关联名称

        // 定义更多的关联属性

                                 ……

                 ),

);
로그인 후 복사


将上述内容放入ProfileModel中即关联了Dept表,使用很简单很明了,还有其他的一些关联属性

在控制器中使用关联查询时,如下所示:

$Profile=D('Profile');

$data=$Profile->relation(true)->find(1);

print_r($data);

$Profile->display();
로그인 후 복사


以下是运行结果:

array(

'id'           =>     1,

'account'      =>     'ThinkPHP',

'password'     =>     '123456',

'Dept'         => array(

                              'email'     =>'gs@123.com',

                              'nickname'  =>'状元秀',

   ),

 )
로그인 후 복사


如果在关联属性中加入 'as_fields'=>'email,nickname',则为下列结果

array(

'id'           =>   1,

'account'      =>  'ThinkPHP',

'password'     => 'name',

'email'        =>'gs@123.com',

'nickname'     =>'状元秀',

 )
로그인 후 복사


  这只是一个地方,还有很多犀利的地方就不一一列举了,例如自动验证,自动完成这些强悍的功能,对于快速开发用框架技术的确是很不错的选择,模块化的东西会节省很多时间与精力,对于编程来说,一定要站在巨人肩上,取百家之长才是硬道理。

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿