设为首页 收藏本站
查看: 883|回复: 0

LAMP兄弟连ThinkPHP笔记

[复制链接]

尚未签到

发表于 2015-8-19 11:47:24 | 显示全部楼层 |阅读模式
  [LAMP兄弟连李文凯讲ThinkPHP] 学习笔记
  
  
  一、MVC学习
  a) V    VIEW      视图  (模板、    业务员)
  b) C   CONTROL   控制器(模块、    管理层)
  c) M    Model      模型(数据库操作、工厂)
  
  
  二、主入口学习(Index.php)
  a) APP_PATH/APP_NAME:程序路径和程序文件夹名
  b) THINK_PATH:THINK程序路径
  c) STRIP_RUNTIME_SPACE:生成的编译缓存文件是否去注释和空白
  
  
  三、控制器(模块)、动作与URL路径学习
  a) URL路径:
  i. index.php/index/hello   主入口/模块/动作
  b) URL几种模式:
  0    普通      index.php?m=index&a=hello
  1   Pathinfo    index.php/index/hello
  2    rewrite    index/hello
  3     兼容     index.php?s=/index/hello
  
  四、模板学习
  a) 控制器对应路径、动作对应模板
  b) Display()显示模板
  i. 跨模板:display("模板名")
  ii. 跨模块:display("控制器名:动作名")
  iii. 跨皮肤:display("皮肤名@目录:模板名")
  iv. 全路径:display("./Public/模板名") 注:路径相对于主入口
  
  五、路径学习
  __ROOT__:根目录     __SELF__:全URL     __URL__: 模块目录     __APP__: 入口文件目录    __ACTION__:动作目录    TEMPLATE_PATH:模板目录    WEB_PUBLIC_PATH:公用目录
  
  六、模型实例化的几种方法
  1、实例系统模型:    $user = M('User');  等价于 $user = new Model('user');       //实例TP中的Model.php
  2、实例自定义模型:$user = D('User');   等价于 $user = new UserModel();  //只针对此表操作
  3、跨模型实例:       $user = M('User','CommModel);  //用于公用模块、CU RD和关联操作
  4、空模型实例:       $user = M();    //什么都没有
  
  七、CURD和关联操作
  
  1、连贯操作:$list = $user->field('id,name')->where('id=1')->order('id desc')->select();  //查询user表中,id为1的 id,name 数据
  
  2、find、findAll和select区别:find--查询一条数据,为一维数组;findAll == select 查询多条数据,为二维数组;
  3、Table:多表操作; $list = $user->table(' user u,order o ')->where(' u.id=o.id ')->select(); //查询user和order表中,id相同的数据
  4、getField:获取指定字段内容; $list = $user->where('id=1')->getField('name');  //获取id为1的用户名称
  5、add()和save():添加和保存信息;    $list = $user->add('name=123'); //添加
  $list = $user->where('id=1')->save('name=456');//编辑
  6、setInc()和setDec():数值+1/-1
  
  八、create与自动令牌
  1、什么是令牌?一个在FORM表单中,系统预先定义的一个加密字符串,用于验证是否站外提交.
  如:<input type='hidden' name='__hash__' value='123456789sss'>
  2、create():根据表单提交的POST数据创建数据对象
  
  
  九、查询表达式    $data['id'] = array(array("gt",' 250'),array("gt",' 253'),array('in','251'),'or');    //eq(==) gt(>) lt(<) between(在。。中) in(在。中) like(相似)       //复合表达式    $data['status'] = array( array('egt',2) , array('elt',5) );    $data['id'] = array('lt',60);    $data['_logic'] = 'or';           //关系为OR    $where['_complex'] = $data;       //组合关系   ( (`status` >= 2) AND (`status` <= 5) ) OR ( `id` < 60 ) )    $where['id'] = array('in','56,57'); //AND ( `id` IN (56,57)    //SELECT id,status FROM `rfcms_order` WHERE ( ( (`status` >= 2) AND (`status` <= 5) ) OR ( `id` < 60 ) ) AND ( `id` IN (56,57) )    $list = $member->where($where)->field('id,status')->select();     //统计查询   $list = $member->count();     //统计总条数   $list = $member->sum('price'); //统计总和   $list = $member->avg('price'); //平均数     //定位   $member = new AdvModel('member'); //需要继承AdvModel   $list = $member->order('id desc')->getN(N); //获取N-1条   $list = $member->order('id desc')->first(); //获取第一条   $list = $member->order('id desc')->last();   $list = $member->order('id desc')->top2();  //获取前两条
  
  十、分页与验证码
  1、分页
  import('@.Org.page');   //引入分页类
  $member = D('member');   $cnt = $member->count();  //统计总条数   $page = new Page($cnt,3); //实例分页 Page('总的记录数','每页显示记录数')   $show = $page->show();    //分页显示输出   $list = $member->field('id,name')->limit( $page->firstRow .','. $page->listRows )->select();   $this->assign('page',$show);   
  $this->assign('member',$list);   $this->display();
  2、验证码:
  //生成图像验证码  public function verify(){       import('@.Org.Image');       Image::buildImageVerify(); //生成图像验证码
  //Image::GBVerify();  生成中文验证  注:1、需要拷贝中文字体到'@.Org'目录  2、需要修改Image.class.php中322行,msubstr为String::msubstr    }
  html中调用方法:<img src="__URL__/verify"  />
  验证:if (md5($_POST['verify']) == $_SESSION['verify']){.....}
  
  十一、多语言和多皮肤
  1、多语言:A、需要在Lang目录下建立几个语言文件夹,如:zh-cn,zh-tw,en-us;并且新建一个与之相对应的语言集
  B、开启conf/config.php 配置文件中,'LANG_SWITCH_ON'  =>true
  C、在TPL文件中引入:<a href="?l=zh-cn">中文</a><a  href="?l=en-us">englist</a>....<div>{$Think.lang.welcome}</div>
  2、多皮肤:A、需要在Tpl目录下建立几个语言文件夹,如:Red,Black,Blue;并且新建一个与之相对应                                                
  B、开启conf/config.php 配置文件中, 'TMPL_DETECT_THEME' =>  true;
  C、在TPL文件中引入:<a href="?t=Red">红色</a><a  href="?t=black">黑色t</a>....
  
  十一、动态缓存
  1、S('data',$Data,3600);   // 设置缓存,缓存$Data数据3600秒
  2、$Data = S('data'); // 获取缓存数据
  3、  S('data',NULL); // 删除缓存数据
  
  十二、视图
  <?php class UserViewModel extends ViewModel{ //继承视图模型  protected   $viewFields = array(   'user' =>array('id,name,pwd'),   'msg'   =>array('title','_on'=>'user.id=msg.uid'), //建立关联  );//select  u.*,m.title from user u,msg m where u.id=m.uid
} //TP引用视图:方便表链接查询 $user = new UserViewModel(); $list =  $user->select(); dump($list); ?>
  
  
  转自:http://hi.baidu.com/zdy66/item/fd86b908b4adb3c02f4c6b68
  谢了!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-101101-1-1.html 上篇帖子: LAMP源码安装 下篇帖子: lamp 环境配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表