(四)Thinkphp运行流程简介-TTLSA

tonyty163 PHP ttlsa教程系列(四)Thinkphp运行流程简介-TTLSA已关闭评论11,092字数 2590阅读8分38秒阅读模式

ThinkPHP安装完毕后
我们接下来来了解下,ThinkPHP各个组件之间如何协作的
在上一章中,我们配置了一个app的应用,接下来就以这个应用为例子进行讲解

进入app目录中,看到如下目录结构文章源自运维生存时间-https://www.ttlsa.com/php/thinkphp-running-process-ttlsa/

├─Common 项目公共文件目录
├─Conf 项目配置目录
├─Lang 项目语言目录
├─Lib 项目类库目录
│  ├─Action Action类库目录(Controller)
│  ├─Behavior 行为类库目录
│  ├─Model 模型类库目录(Model)
│  └─Widget Widget类库目录
├─Runtime 项目运行时目录
│  ├─Cache 模板缓存目录
│  ├─Data 数据缓存目录
│  ├─Logs 日志文件目录
│  └─Temp 临时缓存目录
└─Tpl 项目模板目录(View)

一般我们进入thinkphp框架,首先是要去寻找控制器Controller,然后通过控制器我们可以找到前端的模板Viewer文件,或者后端数据处理模型Model
接下来,我们简单了解下,MVC的配置方法及运行流程文章源自运维生存时间-https://www.ttlsa.com/php/thinkphp-running-process-ttlsa/

一、控制器Controller
接下来进入app/Lib/Action/目录
打开IndexAction.class.php,看到如下内容,如果有点html基础的,就知道图片这就是图片中的内容文章源自运维生存时间-https://www.ttlsa.com/php/thinkphp-running-process-ttlsa/

<?php
// 本类由系统自动生成,仅供测试用途
class IndexAction extends Action {
    public function index(){
	$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 style=&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/文章源自运维生存时间-https://www.ttlsa.com/php/thinkphp-running-process-ttlsa/

那么我们把该控制器换成文章源自运维生存时间-https://www.ttlsa.com/php/thinkphp-running-process-ttlsa/

<?php
// 本类由系统自动生成,仅供测试用途
class IndexAction extends Action {
    public function index(){
		echo 'This is index.';
    }
}

那么,说明我们的默认控制器即为IndexAction.class.php文章源自运维生存时间-https://www.ttlsa.com/php/thinkphp-running-process-ttlsa/

二、视图Viewer
作为初学者,我觉得很多朋友跟我一样有这个疑问,我们需要如何调用视图呢?
其实很简单,还是以上面默认的Index控制器IndexAction.class.php为例文章源自运维生存时间-https://www.ttlsa.com/php/thinkphp-running-process-ttlsa/

<?php
// 本类由系统自动生成,仅供测试用途
class IndexAction extends Action {
    public function index(){
		$this->display();
    }
}

$this->display()与$this->display(index)是一样的作用文章源自运维生存时间-https://www.ttlsa.com/php/thinkphp-running-process-ttlsa/

接下来,我们要去哪里找我们的视图文件呢?
要在目录app/Tpl/Index/目录下,默认没有Index目录,需要手动创建。这里的Index与控制器的名字IndexAction是对应关系,所以首字母必须大写。
如果以后建立了其他控制器,只需要目录名与控制器名对应即可。如,建立EditAction,即建立Edit目录即可文章源自运维生存时间-https://www.ttlsa.com/php/thinkphp-running-process-ttlsa/

那么接下来在app/Tpl/Index/建立index.html文件,并在其中输出This is Index Viewer!
然后在浏览器中访问http://localhost/think/文章源自运维生存时间-https://www.ttlsa.com/php/thinkphp-running-process-ttlsa/

看到如显示
This is Index Viewer!文章源自运维生存时间-https://www.ttlsa.com/php/thinkphp-running-process-ttlsa/

即表示配置成功文章源自运维生存时间-https://www.ttlsa.com/php/thinkphp-running-process-ttlsa/

三、模型Model
简单理解,模型就是将数据库、表单数据通过框架统一处理,以达到简化操作目的。
当定义了模型之后,需要在操作中将模型实例化才能具体实现模型中的业务逻辑。文章源自运维生存时间-https://www.ttlsa.com/php/thinkphp-running-process-ttlsa/

不同的数据业务规则会有不同的模型定义,而在实例化模型的时候也可能不同。ThinkPHP 支持如下几种实例化模型:文章源自运维生存时间-https://www.ttlsa.com/php/thinkphp-running-process-ttlsa/

1、基础模型类
2、其他模型类
3、用户自定义模型类
4、空模型类文章源自运维生存时间-https://www.ttlsa.com/php/thinkphp-running-process-ttlsa/

那么如果只是作为了解,目前我们只需要掌握基础模型类和空模型类的使用即可。文章源自运维生存时间-https://www.ttlsa.com/php/thinkphp-running-process-ttlsa/

实例化基础模型类
定义基础模型类,优点是简单高效,并且支持跨项目调用。
缺点是因为没有自定义的模型类,因此无法写入相关的业务逻辑,只能完成基本的 CURD 操作。
所以如果只是基本的 CURD 操作,建议实例化此种模型类型。
实例化基础模型类方法如下:文章源自运维生存时间-https://www.ttlsa.com/php/thinkphp-running-process-ttlsa/

$User = new Model('User');  
或者使用 M 快捷方法:
$User = M('User'); 
// 下面是其他一些对 user 表的操作 $User->select(); 等于select * from user

实例化空模型类
如果需要使用原生 SQL ,需要实例化一个空模型:
$Model = new Model(); // 执行原生 SQL 语句 $Model->query('SELECT * FROM think_user');
或者使用 M 快捷方法:文章源自运维生存时间-https://www.ttlsa.com/php/thinkphp-running-process-ttlsa/

$User = M(); 文章源自运维生存时间-https://www.ttlsa.com/php/thinkphp-running-process-ttlsa/

本章主要简介MVC相关概念,以及thinkphp运行流程。接下来,我们将在后续章节基于项目进行更详细的讲解。
下一章,我们着重介绍Thinkphp的短函数:(五)Thinkphp常用短函数使用简介-TTLSA文章源自运维生存时间-https://www.ttlsa.com/php/thinkphp-running-process-ttlsa/

weinxin
我的微信
微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~
tonyty163
  • 本文由 发表于 10/02/2014 14:27:07
  • 转载请务必保留本文链接:https://www.ttlsa.com/php/thinkphp-running-process-ttlsa/
  • php
  • thinkphp
  • 例子,自学,教程,示例
  • 运行流程