thinkphp

如何查看tp版本:thinktp/base.php第一行
1.下载ThinkPHP5

官网下载地址:http://www.thinkphp.cn/down.html, 选择完整版下载,在本地解压,将解压后的文件放入到创建的开发目录下。
将public文件夹路径设置为访问路径。在ThinkPHP中,public文件夹可被外部访问。

1.ThinkPHP5.0的目录结构

https://www.kancloud.cn/manual/thinkphp5/118008

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                 命令行入口文件

2.注意信息

在该目录中,需要注意的是我们编写PHP代码一般在application这个目录中。

2.开发规范

1.目录和文件

目录使用小写+下划线;
类库、函数文件统一以.php为后缀;
类的文件名均以命名空间定义,并且命名空间的路径和类库文件所在路径一致;
类文件采用驼峰法命名(首字母大写),其它文件采用小写+下划线命名;
类名和类文件名保持一致,统一采用驼峰法命名(首字母大写);

2.函数和类、属性命名

类的命名采用驼峰法(首字母大写),例如 User、UserType,默认不需要添加后缀,例如UserController应该直接命名为User;
函数的命名使用小写字母和下划线(小写字母开头)的方式,例如 get_client_ip;
方法的命名使用驼峰法(首字母小写),例如 getUserName;
属性的命名使用驼峰法(首字母小写),例如 tableName、instance;
以双下划线“__”打头的函数或方法作为魔术方法,例如 __call 和 __autoload;

3.常量和配置

常量以大写字母和下划线命名,例如 APP_PATH和 THINK_PATH;
配置参数以小写字母和下划线命名,例如 url_route_on 和url_convert;

4.数据表和字段

数据表和字段采用小写加下划线方式命名,并注意字段名不要以下划线开头,例如 think_user 表和 user_name字段,不建议使用驼峰和中文作为数据表字段命名。

5.应用类库命名空间规范

应用类库的根命名空间统一为app(不建议更改,可以设置app_namespace配置参数更改,V5.0.8版本开始使用APP_NAMESPACE常量定义);
例如:app\index\controller\Index和app\index\model\User。

3.配置数据库

  • 项目文件夹下有很多子文件夹,其中application文件夹存放的就是我们的业务代码,所以在入门的时候几乎只涉及到这个文件夹的内容。https://github.com/top-think/framework

  • 在开始制作项目前我们先配置数据库,用编辑器打开 database.php,修改数据库名称、用户名和密码就可以了。

'hostname'        => 'localhost',
'database'        => 'test',
'username'        => 'root',
'password'        => '123456',

创建第一个视图

在服务器上展示一个网页
在传统的PHP中,我们很容易就习惯把html和标签和php语句混到一起。而在MVC结构中,我们要把展现在浏览器上的部分和业务逻辑隔离开来,使得项目的可维护性更高。
ThinkPHP 5.0没有为我们建立视图文件夹,我们在index模块文件夹下建立一个view文件夹,然后在view文件夹下建立一个与控制器同名的Test文件夹,当控制器Test需要调用模板时,会在/index/view/Test中寻找。
这里我们在Test下创建一个index.html文件:





  
  Document



  

Hello World!

然后我们修改控制器的代码,引入think\View命名空间,并创建一个View的实例。

namespace app\index\controller;

use think\View;

class Test {

    public function index(){
        $view=new View();
        return $view->fetch('index');
    }

}

View类中的fetch方法会找到此模块中view文件夹下同名的Test文件夹,并根据参数找到index.html文件,将它渲染出来,这时访问
http://localhost/project_name/public/index.php/Index/Test/index可以看到网页已经显示出来了。http://www.demotp.com/index.php/Index/Test/index

当然,如果方法和模板同名的话,就可以省略掉这个参数了,所以在这里
return view->fetch();

将变量输出到模板
我们需要把控制器中处理后的数据输出到模板上,这时只要把变量绑定到$view对象成为它的属性,就可以在模板中用花括号中将它输出了。
/index/controller/Test.php

name='I love ThinkPHP';

        return $view->fetch();
    }

}

/index/view/Test/index.html





  
  Document



  

{$name}

刷新页面,即可看到效果。

在视图中,可以用点运算符(.)来访问数组的元素。
/index/controller/Test.php

person=array("name"=>"Tom","age"=>"23");

        return $view->fetch();
    }

}

/index/view/Test/index.html





  
  Document



  

{$person.name}

{$person.age}

当然也可以使用 {person["age"]}

你可能感兴趣的:(thinkphp)