ThinkPHP5 系列一

一.目录结构.

project  应用部署目录
├─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                 命令行入口文件

public目录WEB部署目录(对外访问目录),public目录下的index.php是应用入口文件也是是网站唯一的入口,所有内容的访问都是通过这个文件来实现的。

// 定义应用目录
define('APP_PATH', __DIR__ . '/../application/');
// 加载框架引导文件
require __DIR__ . '/../thinkphp/start.php';

二.配置.

  1. 基本配置.


    ThinkPHP5 系列一_第1张图片
    image.png
  2. 数据库配置.


    ThinkPHP5 系列一_第2张图片
    image.png

二.路由.

1.路由的作用.

路由的作用就是把真实的url地址藏起来,把url的请求优雅的对应到你想要执行的操作方法。如:


ThinkPHP5 系列一_第3张图片
image.png

如果不使用路由方式:

www.tp5.com/index/Hello/sayHello

这种方式不仅冗余而且把项目结构暴露出去了.
所以我们要使用路由来优化.

2.路由的定义

在application目录中的route.php中进行定义.

Route::rule('路由表达式','路由地址','请求类型','路由参数(数组)','变量规则(数组)');
Route::rule('api/sample/:key','api/:version.Sample/getSample');

对上一节的url进行优化:

现在就访问地址就变成了:

www.tp5.com/hello

系统提供了为不同的请求类型定义路由规则的简化方法,例如:

2.路由的参数.

例如:

路由为:

通过如下url

www.tp5.com/hello/thinkphp5

如果该参数为可选变量则需要用[]将参数括起来.

通过一下url可以访问:

www.tp5.com/hello/thinkphp5
或
www.tp5.com/hello

3.路由分组.

路由分组功能允许把相同前缀的路由定义合并分组,这样可以提高路由匹配的效率,不必每次都去遍历完整的路由规则。
例如:

Route::get('api/:amin/rigster', 'api/:version.Admin/rigster');
Route::get('api/:amin/login', 'api/:version.Admion/rigster');

可以优化成:

Route::group('api/:amin', function () {
    Route::get('/rigster', 'api/:version.Admin/rigster');
    Route::get('/login', 'api/:version.Admion/rigster');
});

三.控制器及视图模板.

1.模板的定义.

URL解析和路由后,会把当前的URL地址解析到 [ 模块/控制器/操作 ],其实也就是执行某个控制器类的某个操作方法(新版的控制器可以不需要继承任何基类).
如:

或者:

2.渲染模板和输出.

1.继承系统控制器类
    return $this->fetch(可选参数1,可选参数2,可选参数3,可选参数4);
    可选参数1(字符串):模板文件(不带任何参数 自动定位当前操作的模板文件 )
    可选参数2(数组):模板变量(数组)
2.使用助手函数
    return view();
    参数与fetch相同
3.使用view类(不建议使用)
    $view=new View();
    return $view->fetch();
ThinkPHP5 系列一_第4张图片
image.png

3.模板赋值.

assign方法
例如:传入name值到模板中去.

assign("name", "thinkphp");
        // 或者批量赋值
       /* $this->assign([
            'name' => 'ThinkPHP',
            'email' => '[email protected]'
        ]);*/

        return $this->fetch();//渲染模板
    }
}

在模板页面中接受控制器传入的值




    
    页面赋值


{$name}

你可能感兴趣的:(ThinkPHP5 系列一)