• ThinkPHP学习笔记(二)


    1.比较好的参考手册(非官方,注意:也有一些错误,当出不来想要的效果时以官方的手册为准):http://www.5idev.com/p-thinkphp_lib_vendor.shtml

    2.加载自定义函数库:

    (1)我们可以在项目配置文件中定义LOAD_EXT_FILE参数,例如:
    "LOAD_EXT_FILE"=>"user,db"
    通过上面的设置,就会执行过程中自动载入项目公共目录下面的扩展函数库文件user.php和db.php,这样就可以直接在项目(如Home)中调用扩展函数库user.php和db.php中的函数了,而且扩展函数库的函数修改是实时生效的。

    (2)手动载入
    如果你的函数只是个别模块偶尔使用,则不需要采用自动加载方式,可以在需要调用的时候采用load方法手动载入,方式如下:
    load("@.user")
     

    3.模板分隔符:默认是/,可以设置成_,从而减轻目录的深度:

     'TMPL_FILE_DEPR'=>'_'

    4.URL伪静态:

       'URL_HTML_SUFFIX'=>'html|shmtl|xml' // 多个用 | 分割

    伪静态有什么用?
    1. 最主要的就是迎合搜索引擎方便搜索引擎蜘蛛(Spider)来抓取网页上的相关内容!有利于SEO优化;
    2.让用户感觉更安全,提升用户对网页的信任度;

    5.URL生成:

    
    
    U('User/add') // 生成User模块的add操作的URL地址
    U('Blog/read?id=1') // 生成Blog模块的read操作 并且id为1的URL地址
    U('Admin/User/select') // 生成Admin分组的User模块的select操作的URL地址
    
    
    U方法的第二个参数支持数组和字符串两种定义方式,如果只是字符串方式的参数可以在第一个参数中定义,例如:
    
    U('Blog/cate',array('cate_id'=>1,'status'=>1))
    U('Blog/cate','cate_id=1&status=1')
    U('Blog/cate?cate_id=1&status=1')
    三种方式是等效的,都是 生成Blog模块的cate操作 并且cate_id为1 status为1的URL地址
    
    
    但是不允许使用下面的定义方式来传参数
    U('Blog/cate/cate_id/1/status/1')

    6.Thinkphp输入出执行的sql语句

    $db = M('Img');
    $where['cid'] = 0;
    $count=$db->where($where)->count();
    echo $db->getLastSql();//调试时看sql语句是否正确

     7.开启调试模式:

    a.在入口文件index.php设置:
       define('APP_DEBUG',true);
    b.在配置文件config.php中设置:
       'APP_STATUS'            => 'debug',
       'SHOW_ERROR_MSG'        => true,
       'SHOW_PAGE_TRACE'       => true
    
        

     8.session操作

    Session赋值比较简单,直接使用:
    session('name','value');  //设置session
    
    Session取值使用:
    $value = session('name');
    
    session('name',null); // 删除name
    
    要删除所有的session,可以使用:
    session(null); // 清空当前的session
    
    要判断一个session值是否已经设置,可以使用
    session('?name');
    时不我待,不负韶华!立刻行动!不吃学习的苦就会吃生活的苦!
  • 相关阅读:
    列举 spring 支持的事务管理类型?
    memcached 能够更有效地使用内存吗?
    Redis 集群方案什么情况下会导致整个集群不可用?
    详细描述一下 Elasticsearch 更新和删除文档的过程?
    Redis 常见性能问题和解决方案?
    如果有大量的 key 需要设置同一时间过期,一般需要注意什么?
    synchronized 和 ReentrantLock 的区别?
    Redis 支持的 Java 客户端都有哪些?官方推荐用哪个?
    memcached 最大的优势是什么?
    memcached 是原子的吗?
  • 原文地址:https://www.cnblogs.com/zrp2013/p/3605625.html
Copyright © 2020-2023  润新知