ThinkPHP5的安装使用/tp5快速入门,thinkphp5tp5



点击进入视频教程


说明

本手记是在thinkPHP5.0.1的基础上的手记。因为ThinkPHP5的小版本的更新比较快,所以5.0.0和5.0.1的差别还是有点儿大,比如5.0.0的部分功能在后续版本中会废弃或者改变使用方法等。所以在看本手记时需要保证你所使用的ThinkPHP的版本为5.0.1,本记录的流程非框架学习的一般流程,是以有框架使用经验的程序员快速掌握并使用为目的而编写的。会从如何快速开始一个框架的使用开始到框架的深入说明层层递进。

ThinkPHP5框架的说明

ThinkPHP5在国内是一个非常流行的框架,虽然项目发布的时间不算长。关于ThinkPHP要从之前的ThinkPHP3.2.3说起,ThinkPHP3.2.3是非常非常流行的一个php框架,也是非常简单的一个框架,随着时间的推移像比较流行的PHP框架(Laravel,yii2等)都的设计思想被不断的推崇,ThinkPHP3.2.3的不足也暴露的非常明显,ThinkPHP5的诞生是完全的改变了3.2.3版本的设计思想,更好的向着Yii2和Laravel靠近,这也表现了国产框架向着精品发展的决心。
在ThinkPHP5中引入了一些PHP的新特性,比如trait等,而且ThinkPHP可以支持xml或者json格式数据的响应,对于ajax请求直接将数据处理成json再返回,以及资源控制器,这体现出了作为api开发时的便利性。

ThinkPHP5框架的安装

配置服务器运行框架

配置虚拟主机:

在Nginx的vhosts的虚拟主机文件中配置server。将root配置为项目的public目录。并配置个server_name然后将域名映射到本地hosts文件中。

server { 
  listen 80;
  server_name local.tp5.com;
  access_log /data/wwwlogs/local.tp5.com_nginx.log combined;
  index index.html index.htm index.php;
  root /data/wwwroot/edutp5/public;

  if (!-e $request_filename) {
          rewrite  ^(.*)$  /index.php?s=/$1  last;
          break;
     }

   location ~ \.php {
    #fastcgi_pass remote_php_ip:9000;
    fastcgi_pass unix:/dev/shm/php-cgi.sock;
    fastcgi_index index.php;
    include fastcgi_params;
    set $real_script_name $fastcgi_script_name;
    if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
      set $real_script_name $1;
      #set $path_info $2;
    }
    fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
    fastcgi_param SCRIPT_NAME $real_script_name;
    #fastcgi_param PATH_INFO $path_info;
  }

}

其中那个if判断是URL重写规则。为了省去URL中的index.php。配置完Nginx一定要重启Nginx服务

在hosts中添加URL映射:

打开系统中的hosts文件在其中添加如下一行并保存
127.0.0.1 local.tp5.com

运行框架:

在浏览器中输入local.tp5.com就可以访问到框架内容

认识目录找到MVC

edutp5 应用部署目录
├─application 应用目录(可设置)
│ ├─common 公共模块目录(可更改)
│ ├─index 模块目录(可更改)
│ │ ├─config.php 模块配置文件
│ │ ├─common.php 模块函数文件
│ │ ├─controller 控制器目录
│ │ ├─model 模型目录
│ │ ├─view 视图目录
│ │ └─ … 更多类库目录
│ ├─command.php 命令行工具配置文件
│ ├─common.php 应用公共(函数)文件
│ ├─config.php 应用(公共)配置文件
│ ├─database.php 数据库配置文件
│ ├─tags.php 应用行为扩展定义文件
│ └─route.php 路由配置文件
├─extend 扩展类库目录(可定义)
├─public WEB 部署目录(对外访问目录)
│ ├─static 静态资源存放目录(css,js,image)
│ ├─index.php 应用入口文件
│ ├─router.php 快速测试文件
│ └─.htaccess 用于 apache 的重写
├─runtime 应用的运行时目录(可写,可设置)
├─vendor 第三方类库目录(Composer)
├─thinkphp 框架系统目录
│ ├─lang 语言包目录
│ ├─library 框架核心类库目录
│ │ ├─think Think 类库包目录
│ │ └─traits 系统 Traits 目录
│ ├─tpl 系统模板目录
│ ├─.htaccess 用于 apache 的重写
│ ├─.travis.yml CI 定义文件
│ ├─base.php 基础定义文件
│ ├─composer.json composer 定义文件
│ ├─console.php 控制台入口文件
│ ├─convention.php 惯例配置文件
│ ├─helper.php 助手函数文件(可选)
│ ├─LICENSE.txt 授权说明文件
│ ├─phpunit.xml 单元测试配置文件
│ ├─README.md README 文件
│ └─start.php 框架引导文件
├─build.php 自动生成定义文件(参考)
├─composer.json composer 定义文件
├─LICENSE.txt 授权说明文件
├─README.md README 文件
├─think 命令行入口文件

本目录结果是从thinkphp5官方文档中复制的,其中重点需要了解的目录为标位红色的目录及文件。

这儿需要重点注意的是application是应用目录我们的每一个应用可能是由多个模块构成的,例如本项目中的index是一个模块。在每一个模块中包含了完整的配置以及mvc结构。配置实在config.php中,关于配置文件的类型其实是可以自己定义的灵活使用json或者xml格式的配置。controller,model,view分别为控制器目录,模型目录,视图目录。

项目的访问

URL结构解释:
http://local.tp5.com/index.php/index/index/test
这个URL的含义为访问index模块下的index控制器中的test操作。在这个例子中我们知道URL的一般格式。其中index.php是可以省略了的。在Nginx的配置中如果是按照我的笔记中配置的那么已经写入了URL重写规则,在访问时不加index.php也是可以访问的。

可以改成:http://local.tp5.com/index/index/test

那么对应的文件就是在edutp5/index/Index.php中的test操作了。如果自己新建了控制器也是按照这种访问的方式的 http://你的基本URL地址/模块名/控制器/操作 当然路由规则的定义以及路由的使用我们在后续说明定义了路由后请求的方式可能有所不同。

1
1
   

查看评论

相关内容