Fork me on GitHub
文章目录
  1. 1. 说在前面
  2. 2. thinkphp学习笔记
  3. 3. 再贴一下thinkphp官方开发规范
  4. 4. 感谢

说在前面


最近接到了一个紧急任务(一个课程设计),要在一周之内做出一个轻型博客系统,必须快速开发,于是我想到了thinkphp。虽然我之前学过一个PHP,也早就听说过thinkphp,但是对thinkphp是一无所知,火速下载官方文档。开始学习!

thinkphp学习笔记

  1. 获取变量I方法的变量类型、变量名和点之间不能有空格,否则出错
  2. 空操作是指系统在找不到请求的操作方法的时候,会定位到空操作_empty方法来执行,利用这个机制,我们可以实现错误页面和一些URL的优化。
  3. 假设访问的链接是http://localhost/thinkphp/index.php/Home/City/beijing/,如果你修改了默认的操作方法后缀:`'ACTION_SUFFIX‘ => ‘Action’`,然后你想要利用_empty方法输出beijing这个参数(实际上thinkphp一开始认为这是操作方法),那么,_empty($city)方法获取的$city是beijingAction而不是你想要的beijing,这是因为thinkphp默认beijing是操作方法,自动加上了后缀Action。这时,你可以通过thinkphp内置的ACTION_NAME获取beijing!
  4. 如果在某个模型类里面定义了connection属性的话(数组、DSN均可),则实例化该自定义模型的时候会采用定义的数据库连接信息,而不是配置文件中设置的默认连接信息,通常用于某些数据表位于当前数据库连接之外的其它数据库。
  5. 需要注意的是,ThinkPHP的数据库连接的惰性的,所以并不是在实例化的时候就连接数据库,而是在有实际的数据操作的时候才会去连接数据库(额外的情况是,在系统第一次实例化模型的时候,会自动连接数据库获取相关模型类对应的数据表的字段信息)。
  6. where方法的用法是ThinkPHP查询语言的精髓,也是ThinkPHP ORM的重要组成部分和亮点所在,可以完成包括普通查询、表达式查询、快捷查询、区间查询、组合查询在内的查询操作。使用字符串条件的时候,建议配合预处理机制,确保更加安全。
  7. 一般情况下,无需调用table方法,默认会自动获取当前模型对应或者定义的数据表。
  8. thinkphp中Include标签支持在包含文件的同时传入参数,但是要注意!使用变量时用[]符号把变量名包起来(不包括$符号!
  9. 如果插入数据时提示Field * doesn’t have a default value,可以是字段名有问题,有么拼错了,要么是大小写的问题(比如全部换成大写或小写试试?)
  10. 给模板传递变量数组,比如$this->assign($data),这里$data是一个数组($data[‘time’], $data[‘user’]),有两个属性。那么,在模板中,可以直接使用{$time}、{$user}来输出值。注意别写成{$data.time}了哦!
  11. 在thinkphp中使用jQuery的ajax,注意参数正确。最后,如果觉得代码实在没错,重启下服务器试试?

再贴一下thinkphp官方开发规范

  1. 类文件都是以.class.php为后缀(这里是指的ThinkPHP内部使用的类库文件,不代表外部加载的类库文件),使用驼峰法命名,并且首字母大写,例如 DbMysql.class.php;
  2. 类的命名空间地址和所在的路径地址一致,例如 Home\Controller\UserController类所在的路径应该是 Application/Home/Controller/UserController.class.php;
  3. 确保文件的命名和调用大小写一致,是由于在类Unix系统上面,对大小写是敏感的(而ThinkPHP在调试模式下面,即使在Windows平台也会严格检查大小写);
  4. 类名和文件名一致(包括上面说的大小写一致),例如 UserController类的文件命名是UserController.class.php, InfoModel类的文件名是InfoModel.class.php, 并且不同的类库的类命名有一定的规范;
  5. 函数、配置文件等其他类库文件之外的一般是以.php为后缀(第三方引入的不做要求);
  6. 函数的命名使用小写字母和下划线的方式,例如 get_client_ip;
  7. 方法的命名使用驼峰法,并且首字母小写或者使用下划线“_”,例如 getUserName,_parseType,通常下划线开头的方法属于私有方法;
  8. 属性的命名使用驼峰法,并且首字母小写或者使用下划线“_”,例如 tableName、_instance,通常下划线开头的属性属于私有属性;
  9. 以双下划线“”打头的函数或方法作为魔法方法,例如 call 和 __autoload;
  10. 常量以大写字母和下划线命名,例如 HAS_ONE和 MANY_TO_MANY;
  11. 配置参数以大写字母和下划线命名,例如HTML_CACHE_ON;
  12. 语言变量以大写字母和下划线命名,例如MY_LANG,以下划线打头的语言变量通常用于系统语言变量,例如 _CLASS_NOTEXIST
  13. 对变量的命名没有强制的规范,可以根据团队规范来进行;
  14. ThinkPHP的模板文件默认是以.html 为后缀(可以通过配置修改);
  15. 数据表和字段采用小写加下划线方式命名,并注意字段名不要以下划线开头,例如 think_user 表和 user_name字段是正确写法,类似 _username 这样的数据表字段可能会被过滤。

感谢

感谢访问我的个人博客的朋友,如果您感觉本站对您搜索的问题有所帮助,并感觉对本站还满意的话,顶一下吧,希望您把本站分享给您的朋友!在此对您表示由衷的谢意! :)