95992828九五至尊2

thinkphp伍基础882828九五至尊手机版

四月 6th, 2019  |  882828九五至尊手机版

前边的话

  ThinkPHP是二个免费开源的,火速、不难的面向对象的轻量级PHP开发框架,是为着敏捷WEB应用开发和简化公司应用开发而诞生的。ThinkPHP从出生以来平昔秉承简洁实用的统一筹划原则,在维持美好的性质和至简的代码的同时,也注重易用性。坚守Apache2开源许可协议发表,意味着可避防费使用ThinkPHP,甚至同意把依照ThinkPHP开发的选拔开源或商业产品公布/销售。ThinkPHP伍.0版本是1个颠覆和重构版本,接纳全新的架构思想,引入了愈多的PHP新特色,优化了着力,收缩了借助,完结了实在的惰性加载,辅助composer,并对准API开发做了大气的优化,包罗路由、日志、非常、模型、数据库、模板引擎和认证等模块都早就重构,不切合原有3.2门类的升级,但相对是新品类的首要选拔

 

前面包车型地铁话

  ThinkPHP是一个免费开源的,火速、简单的面向对象的轻量级PHP开发框架,是为着敏捷WEB应用开发和简化集团应用开发而诞生的。ThinkPHP从诞生以来平昔秉承简洁实用的陈设基准,在维持理想的特性和至简的代码的还要,也注重易用性。服从Apache2开源许可协议公布,意味着能够防费使用ThinkPHP,甚至同意把遵照ThinkPHP开发的采纳开源或买卖产品发表/销售。ThinkPHP伍.0版本是三个颠覆和重构版本,采纳全新的架构思想,引进了更加多的PHP新性格,优化了主导,裁减了正视,实现了实在的惰性加载,协理composer,并针对性API开发做了大批量的优化,蕴含路由、日志、很是、模型、数据库、模板引擎和表明等模块都早就重构,不相符原有三.2门类的升级换代,但相对是新品类的首选

目录结构

  thinkphp伍安装完毕后,开头目录结构如下所示

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

 

目录结构

  thinkphp5安装达成后,初阶目录结构如下所示

www  WEB部署目录├─application           应用目录│  ├─common             公共模块目录│  ├─module_name        模块目录│  │  ├─config.php      模块配置文件│  │  ├─common.php      模块函数文件│  │  ├─controller      控制器目录│  │  ├─model           模型目录│  │  ├─view            视图目录│  │  └─ ...            更多类库目录│  ││  ├─command.php        命令行工具配置文件│  ├─common.php         公共函数文件│  ├─config.php         公共配置文件│  ├─route.php          路由配置文件│  ├─tags.php           应用行为扩展定义文件│  └─database.php       数据库配置文件│├─public                WEB目录│  ├─index.php          入口文件│  ├─router.php         快速测试文件│  └─.htaccess          用于apache的重写│├─thinkphp              框架系统目录│  ├─lang               语言文件目录│  ├─library            框架类库目录│  │  ├─think           Think类库包目录│  │  └─traits          系统Trait目录│  ││  ├─tpl                系统模板目录│  ├─base.php           基础定义文件│  ├─console.php        控制台入口文件│  ├─convention.php     框架惯例配置文件│  ├─helper.php         助手函数文件│  ├─phpunit.xml        phpunit配置文件│  └─start.php          框架入口文件│├─extend                扩展类库目录├─runtime               应用的运行时目录├─vendor                第三方类库目录(Composer依赖库)├─build.php             自动生成定义文件├─composer.json         composer 定义文件├─LICENSE.txt           授权说明文件├─README.md             README 文件├─think                 命令行入口文件

支付规范

【目录和文件】

  一、目录不强制标准,驼峰和题诗+下划线情势均帮忙

  贰、类库、函数文件统壹以.php为后缀

  叁、类的公文名均以命名空间定义,并且命名空间的门道和类库文件所在路径1致

  肆、类名和类公事名保持1致,统1使用驼峰法命名(首字母大写)

【函数和类、属性命名】

  1、类的命名接纳驼峰法,并且首字母大写,例如 UserUserType,默许不必要加上后缀,例如UserController相应从来取名叫User

  ②、函数的命名使用小写字母和下划线(小写字母开头)的办法,例如 get_client_ip

  3、方法的命名使用驼峰法,并且首字母小写,例如 getUserName

  四、属性的命名使用驼峰法,并且首字母小写,例如 tableNameinstance

  伍、以双下划线“__”打头的函数或措施作为魔法方法,例如 __call 和 __autoload

【常量和布局】

  一、常量以大写字母和下划线命名,例如 APP_PATH和 THINK_PATH

  2、配置参数以小写字母和下划线命名,例如 url_route_on 和url_convert

【数据表和字段】

  1、数据表和字段选用小写加下划线情势命名,并注意字段名不要以下划线开端,例如 think_user 表和 user_name字段,不提出利用驼峰和华语作为数据表字段命名

 

支付规范

  一、目录不强制标准,驼峰和题诗+下划线方式均协理

  二、类库、函数文件统1以.php为后缀

  叁、类的文件名均以命名空间定义,并且命名空间的路线和类库文件所在路径一致

  四、类名和类公事名保持一致,统1使用驼峰法命名

【函数和类、属性命名】

  1、类的命名接纳驼峰法,并且首字母大写,例如UserUserType,私下认可不须要添加后缀,例如UserController相应间接命名称叫User

  贰、函数的命名使用小写字母和下划线的办法,例如get_client_ip

  3、方法的命名使用驼峰法,并且首字母小写,例如getUserName

  4、属性的命名使用驼峰法,并且首字母小写,例如tableNameinstance

  5、以双下划线“__”打头的函数或方式作为魔法方法,例如__call__autoload

  一、常量以大写字母和下划线命名,例如APP_PATHTHINK_PATH

  2、配置参数以小写字母和下划线命名,例如url_route_onurl_convert

  壹、数据表和字段选用小写加下划线方式命名,并小心字段名不要以下划线伊始,例如think_user表和user_name字段,不建议使用驼峰和华语作为数据表字段命名

广大约念

ThinkPHP5.0接纳基于MVC(模型-视图-控制器)的不2秘籍来组织。下边是部分广大致念

【入口文件】

  用户请求的PHP文件,负责处理八个请求(注意,不自然是UENCOREL请求)的生命周期,最广大的进口文件就是index.php,有时候也会为了一点特殊的必要而扩张新的输入文件,例如给后台模块单独设置的2个进口文件admin.php抑或二个控制器程序入口think都属于入口文件

【应用】

  应用在ThinkPHP中是1个管制种类架构及生命周期的靶子,由系统的 \think\App类成就,应用1般在入口文件中被调用和履行,具有相同的利用目录(APP_PATH)的运用大家以为是同1个选择,但二个采用恐怕存在多个入口文件。应用拥有友好独自的安插文件、公共(函数)文件

【模块】

  贰个头名的施用是由三个模块组成的,那一个模块平日都以使用目录上面包车型大巴二个子目录,各样模块都有友好单身的布局文件、公共文件和类库文件

【控制器】

  每种模块拥有独立的MVC类库及布局文件,三个模块上边有三个控制器负责响应请求,而各类控制器其实正是三个独立的主宰器类。

  控制器首要担负请求的收取,并调用相关的模子处理,并最终通过视图输出。严苛来说,控制器不该过多的加入业务逻辑处理

  3个金榜题名的Index决定器类如下:

namespace app\index\controller;
class Index 
{
    public function index()
    {
        return 'hello,thinkphp!';
    }
}

【操作】

  三个控制器包罗四个操作(方法),操作方法是三个U奥迪Q伍L访问的细小单元。

  上面是一个超人的Index控制器的操作方法定义,包涵了八个操作方法:

namespace app\index\controller;
class Index 
{
    public function index()
    {
        return 'index';
    }
    public function hello($name)
    {
        return 'Hello,'.$name;
    }
}

  操作方法能够不使用别的参数,倘使定义了叁个非可选参数,则该参数必须透过用户请求传入,借使是U路虎极光L请求,则经常是$_GET或者$_POST格局传入

【模型】

  模型类日常完成实际的事务逻辑和数目封装,并回到和格式无关的多少

【视图】

  控制器调用模型类后再次来到的数目经过视图组装成差异格式的出口。视图依照不一样的须要,来控制调用模板引擎举行内容分析后输出照旧一贯出口。

  视图平常会有壹层层的沙盘文件对应分裂的控制器和操作方法,并且帮助动态设置模板目录

【驱动】

  系统广大的零件都应用驱动式设计,从而得以越来越灵敏的扩张,驱动类的岗位暗许是放入宗旨类库目录上面,也能够另行定义驱动类库的命名空间而变更驱动的文件地方

【行为】

  行为(Behavior)是在先期定义好的2个行使地点执行的一对操作。类似于AOP编制程序中的“切面”的概念,给某一个断面绑定相关行为就成了①体系AOP编制程序的思虑。所以,行为常常是和某些地方相关,行为的执行时间凭借于绑定到了哪位地点上。

  要实施行为,首先要在应用程序中展开发银行为侦听,例如:

// 在app_init位置侦听行为
\think\Hook::listen('app_init');

  然后对有个别地方举行行为绑定:

// 绑定行为到app_init位置
\think\Hook::add('app_init','\app\index\behavior\Test');

  一个职位上万壹绑定了八个表现的,根据绑定的顺序依次执行,除非蒙受抛锚

【命名空间】

ThinkPHP5采用了PHP的命名空间拓展类库文件的宏图和布置性,并且符合PSR-4的机动加载规范、

 

广泛概念

ThinkPHP5.0运用基于MVC(模型-视图-控制器)的不二诀窍来公司。下边是有个别周边概念

  用户请求的PHP文件,负责处理多个伸手(注意,不必然是U昂CoraL请求)的生命周期,最广泛的进口文件正是index.php,有时候也会为了一点特殊的必要而充实新的入口文件,例如给后台模块单独设置的一个输入文件admin.php只怕2个控制器程序入口think都属于入口文件

  应用在ThinkPHP中是二个管理类别架构及生命周期的目的,由系统的\think\App类成就,应用普通在进口文件中被调用和实行,具有同等的运用目录(APP_PATH)的使用大家认为是同3个接纳,但3个采取恐怕存在三个输入文件。应用拥有温馨单身的安插文件、公共文件

  1个一级的选用是由七个模块组合的,这几个模块日常都以运用目录下边包车型客车四个子目录,种种模块都有温馨单独的安插文件、公共文件和类库文件

  各类模块拥有独立的MVC类库及布署文件,3个模块下边有五个控制器负责响应请求,而种种控制器其实就是一个独立的控制器类。

  控制器首要负责请求的选择,并调用相关的模型处理,并最终经过视图输出。严厉来说,控制器不应该过多的涉公司务逻辑处理

  一个第一名的Index操纵器类如下:

namespace app\index\controller;class Index {    public function index()    {        return 'hello,thinkphp!';    }}

  二个控制器蕴含七个操作,操作方法是叁个UOdysseyL访问的细小单元。

  上面是一个超人的Index控制器的操作方法定义,包涵了多少个操作方法:

namespace app\index\controller;class Index {    public function index()    {        return 'index';    }    public function hello    {        return 'Hello,'.$name;    }}

  操作方法能够不行使别的参数,假如定义了贰个非可选参数,则该参数必须通过用户请求传入,尽管是UCR-VL请求,则常常是$_GET或者$_POST措施传入

  模型类常见达成实际的工作逻辑和数目封装,并再次来到和格式非亲非故的数目

  控制器调用模型类后重返的多少经过视图组装成不相同格式的出口。视图依据区别的须要,来支配调用模板引擎实行内容分析后输出照旧一向出口。

  视图常常会有壹层层的模版文件对应不相同的控制器和操作方法,并且接济动态设置模板目录

  系统广大的零部件都选取驱动式设计,从而得以更加灵活的扩张,驱动类的职位默许是放入核心类库目录上边,也足以重复定义驱动类库的命名空间而改变驱动的公文地方

  行为是在先期定义好的1个应用地点执行的部分操作。类似于AOP编制程序中的“切面”的概念,给某一个断面绑定相关行为就成了1种类AOP编制程序的思虑。所以,行为常常是和某些地点相关,行为的实践时间凭借于绑定到了哪些岗位上。

  要履行行为,首先要在应用程序中展开发银行为侦听,例如:

// 在app_init位置侦听行为\think\Hook::listen('app_init');

  然后对有些地点展开发银行为绑定:

// 绑定行为到app_init位置\think\Hook::add('app_init','\app\index\behavior\Test');

  二个岗位上借使绑定了多少个表现的,依据绑定的相继依次执行,除非遭受抛锚

ThinkPHP5采用了PHP的命名空间进行类库文件的安插和筹划,并且符合PSR-4的机动加载规范、

进口文件

ThinkPHP5.0本子的私下认可自带的输入文件位于public/index.php(实际布署的时候public目录为利用对外访问目录),入口文件内容如下:

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

  那段代码的效益正是概念应用目录APP_PATH和加载ThinkPHP框架的进口文件,那是颇具基于ThinkPHP支付使用的首先步

  官方提供的私下认可使用的实际上目录结构和认证如下:

├─application           应用目录(可设置)
│  ├─index              模块目录(可更改)
│  │  ├─config.php      模块配置文件
│  │  ├─common.php      模块公共文件
│  │  ├─controller      控制器目录
│  │  ├─model           模型目录
│  │  └─view            视图目录
│  │
│  ├─command.php        命令行工具配置文件
│  ├─common.php         应用公共文件
│  ├─config.php         应用配置文件
│  ├─tags.php           应用行为扩展定义文件
│  ├─database.php       数据库配置文件
│  └─route.php          路由配置文件

5.0本子选用模块化的规划架构,默许的采用目录下边唯有一个index模块目录,如若要添加新的模块能够利用控制台命令来扭转。

  切换来命令行情势下,进入到利用根目录并履行如下指令:

php think build --module demo

  就会转移三个私下认可的demo模块,包涵如下目录结构:

├─demo   
│  ├─controller      控制器目录
│  ├─model           模型目录
│  ├─view            视图目录
│  ├─config.php      模块配置文件
│  └─common.php      模块公共文件

  同时也会变动3个暗中认可的Index控制器文件

 

进口文件

ThinkPHP5.0本子的暗中同意自带的输入文件位于public/index.php(实际安排的时候public目录为利用对外访问目录),入口文件内容如下:

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

  那段代码的作用就是概念应用目录APP_PATH和加载ThinkPHP框架的进口文件,那是享有基于ThinkPHP支付应用的率先步

  官方提供的默许使用的骨子里目录结构和注脚如下:

├─application           应用目录│  ├─index              模块目录│  │  ├─config.php      模块配置文件│  │  ├─common.php      模块公共文件│  │  ├─controller      控制器目录│  │  ├─model           模型目录│  │  └─view            视图目录│  ││  ├─command.php        命令行工具配置文件│  ├─common.php         应用公共文件│  ├─config.php         应用配置文件│  ├─tags.php           应用行为扩展定义文件│  ├─database.php       数据库配置文件│  └─route.php          路由配置文件

5.0本子选拔模块化的设计框架结构,暗中同意的施用目录上面唯有1个index模块目录,假设要添加新的模块可以选取控制台命令来变化。

  切换来命令行情势下,进入到使用根目录并执行如下指令:

php think build --module demo

  就会生成三个暗许的demo模块,包含如下目录结构:

├─demo   │  ├─controller      控制器目录│  ├─model           模型目录│  ├─view            视图目录│  ├─config.php      模块配置文件│  └─common.php      模块公共文件

  同时也会变卦2个暗许的Index控制器文件

能源访问

  网址的资源文件访问不会潜移默化健康的操作访问,唯有当访问的能源文件不存在的时候才会分析到进口文件,一般就会唤起模块不存在的一无所能。

  网址的财富文件1般放入public目录的子目录上边,例如下边是3个提出规范:

public
├─index.php       应用入口文件
├─static                静态资源目录   
│  ├─css      样式目录
│  ├─js         脚本目录
│  └─img      图像目录

  访问能源文件的UMuranoL路径是:

http://tp5.com/static/css/style.css
http://tp5.com/static/js/common.js
http://tp5.com/static/img/picture.jpg

  借使未有安装域名绑定,而是使用子目录格局访问的话,那么大概的财富访问地址是:

http://localhost/public/static/css/style.css
http://localhost/public/static/js/common.js
http://localhost/public/static/img/picture.jpg

 

能源访问

  网址的能源文件访问不会潜移默化健康的操作访问,惟有当访问的能源文件不设有的时候才会分析到进口文件,壹般就会提示模块不存在的荒谬。

  网站的能源文件1般放入public目录的子目录上面,例如下边是3个建议规范:

public├─index.php       应用入口文件├─static                静态资源目录   │  ├─css      样式目录│  ├─js         脚本目录│  └─img      图像目录

  访问能源文件的U帕杰罗L路径是:

http://tp5.com/static/css/style.csshttp://tp5.com/static/js/common.jshttp://tp5.com/static/img/picture.jpg

  即便未有设置域名绑定,而是使用子目录方式访问的话,那么恐怕的财富访问地址是:

http://localhost/public/static/css/style.csshttp://localhost/public/static/js/common.jshttp://localhost/public/static/img/picture.jpg

调试格局

ThinkPHP支撑调节和测试情势,暗中同意情状下是翻开状态(5.0.10+本子伊始,暗中认可关闭调节和测试形式,需求团结打开)。调节和测试方式以除错方便优先,而且在老大的时候能够展现尽恐怕多的新闻,所以对性能有自然的熏陶。

  强烈提出开发者在采用ThinkPHP支出的进程中应用调节和测试格局,5.0默许情形下得以捕获到其它细小的失实并抛出越发,那样能够更好的拿走错误提示和制止有个别题材和隐患,不要害怕错误,要身先士卒直面,并解决隐患。

  开发达成后,实际开始展览项目配置的时候,修改应用配置文件(application/config.php)中的app_debug布局参数:

// 关闭调试模式
'app_debug' =>  false,

 

调节和测试方式

ThinkPHP支撑调节和测试情势,暗中同意景况下是翻开状态(5.0.10+本子开端,暗中同意关闭调试情势,供给自己打开)。调节和测试格局以除错方便优先,而且在老大的时候能够显示尽可能多的新闻,所以对品质有早晚的震慑。

  强烈建议开发者在选择ThinkPHP支出的历程中央银行使调节和测试方式,5.0暗许情况下得以捕获到其余细小的失实并抛出尤其,这样能够越来越好的获得错误提醒和制止有些题材和隐患,不要害怕错误,要身先士卒面对,并化解隐患。

  开发形成后,实际展开项目陈设的时候,修改应用配置文件(application/config.php)中的app_debug配备参数:

// 关闭调试模式'app_debug' =>  false,

控制器

  找到index模块的Index控制器(文件位于application/index/controller/Index.php 注意分寸写),把Index支配器类的index情势修改为Hello,World!

<?php
namespace app\index\controller;
class Index
{
    public function index()
    {
        return 'Hello,World!';
    }
}

  访问ULacrosseL地址时,就会看到Hello,World!的出口结果

  如果要访问贰个驼峰命名的控制器,例如大家把地点的例子改成一个HelloWorld控制器

<?php
namespace app\index\controller;
class HelloWorld
{
    public function index($name = 'World')
    {
        return 'Hello,' . $name . '!';
    }
}

  暗许景况下正确的方法是使用上面包车型大巴UHavalL实行走访

http://tp5.com/index.php/index/hello_world

  上边包车型客车拜会地址是一无可取的

http://tp5.com/index.php/index/HelloWorld

  因为暗中认可的UENCOREL访问是不区分轻重缓急写的,全体都会更换为小写的主宰器名,除非在行使配置文件中,设置了关闭url自动转换如下:

'url_convert' => false,

  那么就能够平常访问

http://tp5.com/index.php/index/HelloWorld

  若是要继承1个共用的操纵器类,能够采纳:

<?php

namespace app\index\controller;

use app\index\controller\Base;

class Index extends Base
{
    public function index()
    {
        return 'Hello,World!';
    }
}

  能够为操作方法定义参数,例如:

<?php

namespace app\index\controller;

class Index
{
    public function index($name = 'World')
    {
        return 'Hello,' . $name . '!';
    }
}

  当带name参数访问入口文件地方(例如 http://tp5.com?name=ThinkPHP)的时候,在浏览器中能够见到如下输出:

Hello,ThinkPHP!

  控制器类可以回顾八个操作方法,但倘诺操作方法是protected或者private类型的话,是无能为力直接通过UPRADOL访问到该操作的,也正是说唯有public花色的操作方法才是能够通过U途锐L访问的。

  上面来验证下,把Index支配器类的点子修改为:

<?php
namespace app\index\controller;

class Index
{
    public function hello()
    {
        return 'hello,thinkphp!';
    }

    public function test()
    {
        return '这是一个测试方法!';
    }

    protected function hello2()
    {
        return '只是protected方法!';
    }

    private function hello3()
    {
        return '这是private方法!';
    }
}

  当大家走访如下U揽胜极光L地址的时候,后面多少个是例行访问,前边八个则会显得分外

http://tp5.com/index.php/index/index/hello
http://tp5.com/index.php/index/index/test
http://tp5.com/index.php/index/index/hello2
http://tp5.com/index.php/index/index/hello3

 

控制器

  找到index模块的Index控制器(文件位于application/index/controller/Index.php注意分寸写),把Index控制器类的index措施修改为Hello,World!

<?phpnamespace app\index\controller;class Index{    public function index()    {        return 'Hello,World!';    }}

  访问ULANDL地址时,就会看到Hello,World!的出口结果

  假设要拜访2个驼峰命名的控制器,例如大家把下边包车型客车例证改成四个HelloWorld控制器

<?phpnamespace app\index\controller;class HelloWorld{    public function index($name = 'World')    {        return 'Hello,' . $name . '!';    }}

  暗中同意情形下正确的办法是利用上面包车型地铁U牧马人L实行访问

http://tp5.com/index.php/index/hello_world

  下边包车型客车走访地址是谬误的

http://tp5.com/index.php/index/HelloWorld

  因为暗中认可的U本田CR-VL访问是不区分轻重缓急写的,全体都会变换为小写的操纵器名,除非在动用配置文件中,设置了关闭url自动转换如下:

'url_convert' => false,

  那么就足以健康访问

http://tp5.com/index.php/index/HelloWorld

  假诺要继续3个公共的决定器类,能够运用:

<?phpnamespace app\index\controller;use app\index\controller\Base;class Index extends Base{    public function index()    {        return 'Hello,World!';    }}

  能够为操作方法定义参数,例如:

<?phpnamespace app\index\controller;class Index{    public function index($name = 'World')    {        return 'Hello,' . $name . '!';    }}

  当带name参数访问入口文件地方(例如http://tp5.com?name=ThinkPHP)的时候,在浏览器中得以看出如下输出:

Hello,ThinkPHP!

  控制器类能够包罗四个操作方法,但只要操作方法是protected或者private品种的话,是无力回天直接通过U帕杰罗L访问到该操作的,也正是说唯有public类型的操作方法才是能够通过U昂CoraL访问的。

  上边来表明下,把Index支配器类的主意修改为:

<?phpnamespace app\index\controller;class Index{    public function hello()    {        return 'hello,thinkphp!';    }    public function test()    {        return '这是一个测试方法!';    }    protected function hello2()    {        return '只是protected方法!';    }    private function hello3()    {        return '这是private方法!';    }}

  当大家走访如下USportageL地址的时候,后面多少个是符合规律访问,后边多个则会显得格外

http://tp5.com/index.php/index/index/hellohttp://tp5.com/index.php/index/index/testhttp://tp5.com/index.php/index/index/hello2http://tp5.com/index.php/index/index/hello3

视图

  以往大家在给控制器添加视图像和文字件功效,大家在application/index目录上边创制2个view目录,然后添加模板文件view/index/hello.html(注意分寸写),大家抬高模板内容如下:

<html>
<head>
<title>hello {$name}</title>
</head>
<body>
    hello, {$name}!
</body>
</html>

  要出口视图,必须在控制器方法中实行模板渲染输出操作,未来涂改决定器类如下:

<?php
namespace app\index\controller;

use think\Controller;

class Index extends Controller
{
    public function hello($name = 'thinkphp')
    {
        $this->assign('name', $name);
        return $this->fetch();
    }
}

  [注意]假诺未有行使use think\Controller;就亟须选用class Index extends \think\Controller

Index决定器类继承了 think\Controller类之后,大家得以一贯运用封装好的assignfetch方式开始展览模板变量赋值和渲染输出。

fetch主意中大家从没点名别的模板,所以根据系统暗许的平整(视图目录/控制器/操作方法)输出了view/index/hello.html模板文件。

  接下去,我们在浏览器访问

http://tp5.com/index.php/index/index/hello

  输出:

hello,thinkphp!

 

视图

  未来我们在给控制器添加视图像和文字件作用,大家在application/index目录下边创制贰个view目录,然后添加模板文件view/index/hello.html,大家添加模板内容如下:

<html><head><title>hello {$name}</title></head><body>    hello, {$name}!</body></html>

  要出口视图,必须在控制器方法中展开模板渲染输出操作,将来涂改决定器类如下:

<?phpnamespace app\index\controller;use think\Controller;class Index extends Controller{    public function hello($name = 'thinkphp')    {        $this->assign('name', $name);        return $this->fetch();    }}

  [注意]假若未有动用use think\Controller;就务须利用class Index extends \think\Controller

Index支配器类继承了think\Controller类之后,大家能够平素动用封装好的assignfetch办法开始展览模板变量赋值和渲染输出。

fetch艺术中我们并未点名其余模板,所以依照系统私下认可的规则(视图目录/控制器/操作方法)输出了view/index/hello.html模板文件。

  接下去,大家在浏览器访问

http://tp5.com/index.php/index/index/hello

  输出:

hello,thinkphp!

读取数据

  在起来从前,大家第一在数据库demo中开创二个think_data数据表(这里以mysql数据库为例):

CREATE TABLE IF NOT EXISTS `think_data`(
    `id` int(8) unsigned NOT NULL AUTO_INCREMENT,
    `data` varchar(255) NOT NULL,
    PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 ;

INSERT INTO `think_data`(`id`,`data`) VALUES
(1,'thinkphp'),
(2,'php'),
(3,'framework');

  首先大家须求在使用的数据库配置文件application/database.php中添加数据库的总是新闻如下:

return [
    // 数据库类型
    'type'        => 'mysql',
    // 服务器地址
    'hostname'    => '127.0.0.1',
    // 数据库名
    'database'    => 'demo',
    // 数据库用户名
    'username'    => 'root',
    // 数据库密码
    'password'    => '',
    // 数据库连接端口
    'hostport'    => '',
    // 数据库连接参数
    'params'      => [],
    // 数据库编码默认采用utf8
    'charset'     => 'utf8',
    // 数据库表前缀
    'prefix'      => 'think_',
    // 数据库调试模式
    'debug'       => true,
];

  接下去,我们修改下控制器方法,添加读取数据的代码:

<?php
namespace app\index\controller;

use think\Controller;
use think\Db;

class Index extends Controller
{
    public function index()
    {
        $data = Db::name('data')->find();
        $this->assign('result', $data);
        return $this->fetch();
    }
}

  定义好控制器后,大家修改模板文件,添加数码输出标签如下:

<html>
<head>
<title></title>
</head>
<body>
{$result.id}--{$result.data}
</body>
</html>

  模板标签的用法和Smarty好像,正是用来出口数据的字段,那里就代表输出think_data表的iddata字段的值。

  大家走访会输出:

1--thinkphp

 

读取数据

  在上马此前,我们率先在数据库demo中开创五个think_data数据表(这里以mysql数据库为例):

CREATE TABLE IF NOT EXISTS `think_data`(    `id` int(8) unsigned NOT NULL AUTO_INCREMENT,    `data` varchar(255) NOT NULL,    PRIMARY KEY  ENGINE=MyISAM  DEFAULT CHARSET=utf8 ;INSERT INTO `think_data`(`id`,`data`) VALUES(1,'thinkphp'),(2,'php'),(3,'framework');

  首先大家需求在采纳的数据库配置文件application/database.php中添加数据库的连年音讯如下:

return [    // 数据库类型    'type'        => 'mysql',    // 服务器地址    'hostname'    => '127.0.0.1',    // 数据库名    'database'    => 'demo',    // 数据库用户名    'username'    => 'root',    // 数据库密码    'password'    => '',    // 数据库连接端口    'hostport'    => '',    // 数据库连接参数    'params'      => [],    // 数据库编码默认采用utf8    'charset'     => 'utf8',    // 数据库表前缀    'prefix'      => 'think_',    // 数据库调试模式    'debug'       => true,];

  接下去,我们修改下控制器方法,添加读取数据的代码:

<?phpnamespace app\index\controller;use think\Controller;use think\Db;class Index extends Controller{    public function index()    {        $data = Db::name('data')->find();        $this->assign('result', $data);        return $this->fetch();    }}

  定义好控制器后,我们修改模板文件,添加数量输出标签如下:

<html><head><title></title></head><body>{$result.id}--{$result.data}</body></html>

  模板标签的用法和Smarty接近,正是用来出口数据的字段,那里就象征输出think_data表的iddata字段的值。

  大家访问会输出:

1--thinkphp

相关文章

Your Comments

近期评论

    功能


    网站地图xml地图