美文网首页
ThinkPHP5 基础学习

ThinkPHP5 基础学习

作者: 小小奶狗 | 来源:发表于2017-05-30 01:38 被阅读419次

一、获取ThinkPHP

获取ThinkPHP的方式很多,官方网站是最好的下载和文档获取来源。建议使用composer或者git安装:

  • topthink/thinkphp是3.2版本。
  • topthink/think是最新thinkphp5。
  • topthink/framework是核心框架,一般不选择。

官网下载版本提供了完整版和核心版两个版本,核心版本只保留了核心类库和必须的文件,去掉了所有的扩展类库和驱动,支持标准模式和SAE模式,一般下载完整版进行开发。


二、环境要求

  • 框架本身没有什么特别模块要求,具体的应用系统运行环境要求视开发所涉及的模块。ThinkPHP底层运行的内存消耗极低,而本身的文件大小也是轻量级的,因此不会出现空间和内存占用的瓶颈。

  • PHP5.4以上版本(注意:PHP5.3dev版本和PHP6均不支持)

  • topthink/think依赖于php相应版本和topthink/framework组件。

  • 支持Mysql、MsSQL、PgSQL、Sqlite、Oracle、Ibase、Mongo以及PDO等多种数据库和连接


三、目录结构

下载ThinkPHP框架后,解压缩到web目录下面,可以看到初始的目录结构如下:

ThinkPHP5.0.9目录结构
  • 一级目录有六个,分别是应用目录,拓展类库目录,web开放目录,运行时目录,框架系统目录,第三方类库。

  • 一级目录中有一些文件,分别是协议,readme,composer配置和锁文件,think命令行工具,自动生成定义文件build.php。

  • README.md文件仅用于说明,实际部署的时候可以删除。

  • 上面的目录结构和名称是可以改变的,这取决于你的入口文件和配置参数。

  • ThinPHP默认路由访问顺序是/模块/控制器/控制器方法


四、入口文件

ThinkPHP采用单一入口模式进行项目部署和访问,无论完成什么功能,一个应用都有一个统一(但不一定是唯一)的入口。应该说,所有应用都是从入口文件开始的,并且不同应用的入口文件是类似的。

  • 入口文件定义

  • 入口文件主要完成:

    • 定义框架路径、项目路径(可选)

    • 定义调试模式和应用模式(可选)

    • 定义系统相关常量(可选)

    • 载入框架入口文件(必须)

默认情况下,TP5版本的框架已经自带了一个应用入口文件(以及默认的目录结构),内容如下:
define('APP_PATH','./Application/');
require './ThinkPHP/ThinkPHP.php';

  • 注意:3.2版本开始无需定义APP_NAME常量

如果你改变了项目目录(例如把Application更改为Apps),只需要在入口文件更改APP_PATH常量定义即可:

define('APP_PATH','./Apps/');

require './ThinkPHP/ThinkPHP.php';

  • 注意:APP_PATH的定义支持相对路径和绝对路径,但必须以“/”结束

五、开发规范

使用ThinkPHP开发的过程中应该尽量遵循下列命名规范:

  • 类文件都是以.class.php为后缀(这里是指的ThinkPHP内部使用的类库文件,不代表外部加载的类库文件),使用驼峰法命名,并且首字母大写,例如 DbMysql.class.php;

  • 类的命名空间地址和所在的路径地址一致,例如 Home\Controller\UserController类所在的路径应该是 Application/Home/Controller/UserController.class.php;

  • 确保文件的命名和调用大小写一致,是由于在类Unix系统上面,对大小写是敏感的(而ThinkPHP在调试模式下面,即使在Windows平台也会严格检查大小写);

  • 类名和文件名一致(包括上面说的大小写一致),例如 UserController类的文件命名是UserController.class.php, InfoModel类的文件名是InfoModel.class.php, 并且不同的类库的类命名有一定的规范;

  • 函数、配置文件等其他类库文件之外的一般是以.php为后缀(第三方引入的不做要求);

  • 函数的命名使用小写字母和下划线的方式,例如 get_client_ip;

  • 方法的命名使用驼峰法,并且首字母小写或者使用下划线“_”,例如 getUserName,_parseType,通常下划线开头的方法属于私有方法;

  • 属性的命名使用驼峰法,并且首字母小写或者使用下划线“_”,例如 tableName、_instance,通常下划线开头的属性属于私有属性;

  • 以双下划线“__”打头的函数或方法作为魔法方法,例如 __call 和 __autoload;

  • 常量以大写字母和下划线命名,例如 HAS_ONE和 MANY_TO_MANY;

  • 配置参数以大写字母和下划线命名,例如HTML_CACHE_ON;

  • 语言变量以大写字母和下划线命名,例如MY_LANG,以下划线打头的语言变量通常用于系统语言变量,例如 CLASS_NOT_EXIST

  • 对变量的命名没有强制的规范,可以根据团队规范来进行;

  • ThinkPHP的模板文件默认是以.html 为后缀(可以通过配置修改);

  • 数据表和字段采用小写加下划线方式命名,并注意字段名不要以下划线开头,例如 think_user 表和 user_name字段是正确写法,类似 _username 这样的数据表字段可能会被过滤。

  • 特例:在ThinkPHP里面,有一个函数命名的特例,就是单字母大写函数,这类函数通常是某些操作的快捷定义,或者有特殊的作用。例如:A、D、S、L 方法等等,他们有着特殊的含义,后面会有所了解。

  • 由于ThinkPHP默认全部使用UTF-8编码,所以请确保你的程序文件采用UTF-8编码格式保存,并且去掉BOM信息头(去掉BOM头信息有很多方式,不同的编辑器都有设置方法,也可以用工具进行统一检测和处理),否则可能导致很多意想不到的问题。
    开发建议

  • 在使用ThinkPHP进行开发的过程中,我们给出如下建议,会让你的开发变得更轻松:

    • 遵循框架的命名规范和目录规范;

    • 开发过程中尽量开启调试模式;

    • 多看看日志文件,查找隐患问题;

    • 养成使用I函数获取输入变量的好习惯;

    • 环境改变后首先要清空Runtime目录;

相关文章

网友评论

      本文标题:ThinkPHP5 基础学习

      本文链接:https://www.haomeiwen.com/subject/tuwlfxtx.html