微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

TTLSA带你学习Thinkphp:一、入门阶段 四Thinkphp运行流程简介-TTLSA

ThinkPHP安装完毕后

我们接下来来了解下,ThinkPHP各个组件之间如何协作的

在上一章中,我们配置了一个app的应用,接下来就以这个应用为例子进行讲解

进入app目录中,看到如下目录结构

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

├─Common项目公共文件目录

├─Conf项目配置目录

├─Lang项目语言目录

├─Lib项目类库目录

│  ├─Action Action类库目录(Controller)

│  ├─Behavior行为类库目录

│  ├─Model模型类库目录(Model)

│  └─Widget Widget类库目录

├─Runtime项目运行时目录

│  ├─Cache模板缓存目录

│  ├─Data数据缓存目录

│  ├─Logs日志文件目录

│  └─Temp临时缓存目录

└─Tpl项目模板目录(View)

一般我们进入thinkPHP框架,首先是要去寻找控制器Controller,然后通过控制器我们可以找到前端的模板Viewer文件,或者后端数据处理模型Model

接下来,我们简单了解下,MVC的配置方法及运行流程

一、控制器Controller

接下来进入app/Lib/Action/目录

打开IndexAction.class.PHP,看到如下内容,如果有点html基础的,就知道图片这就是图片中的内容

1

2

3

4

5

6

7

8

<?PHP

// 本类由系统自动生成,仅供测试用途

classIndexActionextendsAction{

    publicfunctionindex(){

$this-&gt;show(&#039;&lt;style type=&quot;text/css&quot;&gt;*{ padding: 0; margin: 0; } div{ padding: 4px 48px;} body{ background: #fff; font-family: &quot;微软雅黑&quot;; color: #333;} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.8em; font-size: 36px }&lt;/style&gt;&lt;div &quot;padding: 24px 48px;&quot;&gt; &lt;h1&gt;:)&lt;/h1&gt;&lt;p&gt;欢迎使用 &lt;b&gt;ThinkPHP&lt;/b&gt;!&lt;/p&gt;&lt;/div&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;http://tajs.qq.com/stats?sId=9347272&quot; charset=&quot;UTF-8&quot;&gt;&lt;/script&gt;&#039;,&#039;utf-8&#039;);

    }

}

这就是我们的控制器

在这个控制器里,定义了个IndexAction类,继承了Action类

然后再定义一个index()方法方法中的内容是,显示一张笑脸

在浏览器中访问http://localhost/think/

那么我们把该控制器换成

1

2

3

4

5

6

7

8

<?PHP

// 本类由系统自动生成,仅供测试用途

classIndexActionextendsAction{

    publicfunctionindex(){

echo'This is index.';

    }

}

那么,说明我们的认控制器即为IndexAction.class.PHP

二、视图Viewer

作为初学者,我觉得很多朋友跟我一样有这个疑问,我们需要如何调用视图呢?

其实很简单,还是以上面认的Index控制器IndexAction.class.PHP为例

1

2

3

4

5

6

7

8

<?PHP

// 本类由系统自动生成,仅供测试用途

classIndexActionextendsAction{

    publicfunctionindex(){

$this->display();

    }

}

$this->display()与$this->display(index)是一样的作用

接下来,我们要去哪里找我们的视图文件呢?

要在目录app/Tpl/Index/目录下,认没有Index目录,需要手动创建。这里的Index与控制器的名字IndexAction是对应关系,所以首字母必须大写。

如果以后建立了其他控制器,只需要目录名与控制器名对应即可。如,建立Editaction,即建立Edit目录即可

那么接下来在app/Tpl/Index/建立index.html文件,并在其中输出This is Index Viewer!

然后在浏览器中访问http://localhost/think/

看到如显示

This is Index Viewer!

即表示配置成功

三、模型Model

简单理解,模型就是将数据库、表单数据通过框架统一处理,以达到简化操作目的。

当定义了模型之后,需要在操作中将模型实例化才能具体实现模型中的业务逻辑。

不同的数据业务规则会有不同的模型定义,而在实例化模型的时候也可能不同。ThinkPHP 支持如下几种实例化模型:

1、基础模型类

2、其他模型类

3、用户自定义模型

4、空模型类

那么如果只是作为了解,目前我们只需要掌握基础模型类和空模型类的使用即可。

实例化基础模型类

定义基础模型类,优点是简单高效,并且支持跨项目调用

缺点是因为没有自定义的模型类,因此无法写入相关的业务逻辑,只能完成基本的 CURD 操作。

所以如果只是基本的 CURD 操作,建议实例化此种模型类型。

实例化基础模型类方法如下:

1

2

3

4

5

$User=newModel('User');  

或者使用M快捷方法

$User=M('User');

// 下面是其他一些对 user 表的操作 $User->select(); 等于select * from user

实例化空模型类

如果需要使用原生 sql ,需要实例化一个空模型:

$Model = new Model(); // 执行原生 sql 语句 $Model->query('SELECT * FROM think_user');

或者使用 M 快捷方法

$User = M();

本章主要简介MVC相关概念,以及thinkPHP运行流程。接下来,我们将在后续章节基于项目进行更详细的讲解。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐