zoukankan      html  css  js  c++  java
  • Thinkphp框架基础

    环境要求

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

    目录结构  

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

    1. www WEB部署目录(或者子目录)
    2. ├─index.php 入口文件
    3. ├─README.md README文件
    4. ├─Application 应用目录
    5. ├─Public 资源文件目录
    6. └─ThinkPHP 框架目录

    其中框架目录ThinkPHP的结构如下:

    1. ├─ThinkPHP 框架系统目录(可以部署在非web目录下面)
    2. ├─Common 核心公共函数目录
    3. ├─Conf 核心配置目录
    4. ├─Lang 核心语言包目录
    5. ├─Library 框架类库目录
    6. ├─Think 核心Think类库包目录
    7. ├─Behavior 行为类库目录
    8. ├─Org Org类库包目录
    9. ├─Vendor 第三方类库目录
    10. ├─ ... 更多类库目录
    11. ├─Mode 框架应用模式目录
    12. ├─Tpl 系统模板目录
    13. ├─LICENSE.txt 框架授权协议文件
    14. ├─logo.png 框架LOGO文件
    15. ├─README.txt 框架README文件
    16. └─index.php 框架入口文件

    入口文件

    ThinkPHP采用单一入口模式进行项目部署和访问,无论完成什么功能,一个应用都有一个统一(但不一定是唯一)的入口。

    应该说,所有应用都是从入口文件开始的,并且不同应用的入口文件是类似的。

    默认情况下,3.2版本的框架已经自带了一个应用入口文件(以及默认的目录结构),内容如下:

    1. define('APP_PATH','./Application/');
    2. require './ThinkPHP/ThinkPHP.php';

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

    1. define('APP_PATH','./Apps/');
    2. require './ThinkPHP/ThinkPHP.php';

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

    如果你调整了框架核心目录的位置或者目录名,只需要这样修改:

    1. define('APP_PATH','./Application/');
    2. require './Think/ThinkPHP.php';

    也可以单独定义一个THINK_PATH常量用于引入:

    1. define('APP_PATH','./Application/');
    2. define('THINK_PATH',realpath('../Think').'/');
    3. require THINK_PATH.'ThinkPHP.php';

    和APP_PATH一样THINK_PATH路径定义也必须以“/”结尾。
    给THINK_PATH和APP_PATH定义绝对路径会提高系统的加载效率。

    自动创建目录

    在第一次访问应用入口文件的时候,会显示如图所示的默认的欢迎页面,并自动生成了一个默认的应用模块Home。

    接下来再看原来空的Application目录下面,已经自动生成了公共模块Common、默认的Home模块和Runtime运行时目录的目录结构:

    1. Application
    2. ├─Common 应用公共模块
    3. ├─Common 应用公共函数目录
    4. └─Conf 应用公共配置文件目录
    5. ├─Home 默认生成的Home模块
    6. ├─Conf 模块配置文件目录
    7. ├─Common 模块函数公共目录
    8. ├─Controller 模块控制器目录
    9. ├─Model 模块模型目录
    10. └─View 模块视图文件目录
    11. ├─Runtime 运行时目录
    12. ├─Cache 模版缓存目录
    13. ├─Data 数据目录
    14. ├─Logs 日志目录
    15. └─Temp 缓存目录

    如果你不是Windows环境下面的话,需要对应用目录Application设置可写权限才能自动生成。
    如果不是调试模式的话,会在Runtime目录下面生成common~runtime.php文件(应用编译缓存文件)。

    控制器

    我们可以在自动生成的Application/Home/Controller目录下面找到一个 IndexController.class.php 文件,这就是默认的Index控制器文件。

    控制器类的命名方式是:控制器名(驼峰法,首字母大写)+Controller

    控制器文件的命名方式是:类名+class.php(类文件后缀)

    默认的欢迎页面其实就是访问的Home模块下面的Index控制器类的index操作方法我们修改默认的index操作方法如下:

    namespace HomeController;
    use ThinkController;
    class IndexController extends Controller {
        public function index(){
            echo 'hello,world!';  
      }
    }
    

     再次运行应用入口文件,浏览器会显示:hello,world!

    我们再来看下控制器类,IndexController控制器类的开头是命名空间定义:

    1. namespace HomeController;

    这是系统的规范要求,表示当前类是Home模块下的控制器类,命名空间和实际的控制器文件所在的路径是一致的,也就是说: HomeControllerIndexController类 对应的控制器文件位于应用目录下面的 Home/Controller/IndexController.class.php,如果你改变了当前的模块名,那么这个控制器类的命名空间也需要随之修改。

      2.use ThinkController;

    表示引入 ThinkController 命名空间便于直接使用。所以,

    use ThinkController;
    class IndexController extends Controller

    等同于使用:

    class IndexController extends ThinkController

    命名规范

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

    类文件都是以.class.php为后缀(这里是指的ThinkPHP内部使用的类库文件,不代表外部加载的类库文件),使用驼峰法命名,并且首字母大写,例如 DbMysql.class.php; 
    类的命名空间地址和所在的路径地址一致,例如 HomeControllerUserController类所在的路径应该是 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 方法等等,他们有着特殊的含义,后面会有所了解。

  • 相关阅读:
    MyBatis使用总结
    RPC与RMI的区别
    Python Web-第五周-Web Services and XML(Using Python to Access Web Data)
    Python Web-第四周-Programs that Surf the Web(Using Python to Access Web Data)
    Python Web-第三周-Networks and Sockets(Using Python to Access Web Data)
    Python Web-第二周-正则表达式(Using Python to Access Web Data)
    DELL XPS 13 9350 装Win7系统(坑爹)
    手心输入法皮肤制作技巧
    请对照这二十四条逻辑谬误自行打脸(转自知乎谢熊猫专栏)
    Aspose实现Office转PDF (ASP.NET)
  • 原文地址:https://www.cnblogs.com/shenzikun1314/p/6811286.html
Copyright © 2011-2022 走看看