-
08月29日
-
【何为ThinkPHP框架】
ThinkPHP是一个快速、简单的基于MVC和面向对象的轻量级PHP开发框架,遵循Apache2开源协议发布,从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,尤其注重开发体验和易用性,并且拥有众多的原创功能和特性,为WEB应用开发提供了强有力的支持。
3.2版本则在原来的基础上进行一些架构的调整,引入了命名空间支持和模块化的完善,为大型应用和模块化开发提供了更多的便利。本文将系统全面的讲解ThinkPHP3.2.3版本(最稳定、使用人数最多)
【下载ThinkPHP】获取ThinkPHP的方式很多,官方网站(http://thinkphp.cn)是最好的下载和文档获取来源。
官网提供了稳定版本的下载:http://thinkphp.cn/down/framework.html
官网下载版本提供了完整版和核心版两个版本,核心版本只保留了核心类库和必须的文件,去掉了所有的扩展类库和驱动,支持标准模式和SAE模式。
如果你希望保持最新的更新,可以通过github获取当前最新的版本(完整版)。
Git获取地址列表(你可以选择一个最快的地址):
Github:
https://github.com/liu21st/thinkphp
Oschina:http://git.oschina.net/liu21st/thinkphp.git
Code:https://code.csdn.net/topthink2011/ThinkPHP
Coding:https://coding.net/u/liu21st/p/thinkphp/git
3.2版本也支持composer安装,确保你的电脑已经安装了composer,然后在你的web根目录下面执行
composer create-project topthink/thinkphp your-project-name
(注意:目前国内的速度很慢 建议直接下载官网版本)
ThinkPHP无需任何安装,直接拷贝到你的电脑或者服务器的WEB运行目录下面即可。
【ThinkPHP环境要求】
框架本身没有什么特别模块要求,具体的应用系统运行环境要求视开发所涉及的模块。ThinkPHP底层运行的内存消耗极低,而本身的文件大小也是轻量级的,因此不会出现空间和内存占用的瓶颈。
PHP版本要求
- PHP5.3以上版本(注意:PHP5.3dev版本和PHP6均不支持)
支持的服务器和数据库环境
- 支持Windows/Unix服务器环境
- 可运行于包括Apache、IIS和nginx在内的多种WEB服务器和模式
- 支持Mysql、MsSQL、PgSQL、Sqlite、Oracle、Ibase、Mongo等多种数据库和连接
对于刚刚接触PHP或者ThinkPHP的新手,我们推荐使用集成开发环境WAMPServer(wampserver是一个集成了Apache、PHP和MySQL的开发套件,而且支持不同PHP版本、MySQL版本和Apache版本的切换)来使用ThinkPHP进行本地开发和测试。
【开发规范】
使用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目录;