标签:out 语言 ica 引导 服务器 ons 直接 get 简单
使用composer在安装TP5后的目录结构如下
tp5/ ;根目录
/application ;应用目录
/index ;应用index模块目录
command.php ;命令行命令配置目录
config.php ;应用配置文件
databse.php ;应用数据库配置文件
route.php ;应用路由配置文件
/public ;入口目录
/static ;静态资源目录
.htacess ;apache服务器配置
index.php ;默认入口文件
robots.txt ;爬虫协议文件
router.php ;php命令行服务器入口文件
/extend ;框架扩展目录
/thinkphp ;框架核心目录
/lang ;框架语言目录
/library ;框架核心目录
/tpl ;框架模板目录
base.php ;全局常量文件
convention.php ;全局配置文件
helper.php ;辅助函数文件
start.php ;框架引导入口
console ;控制台入口文件
/vendor ;composer安装目录
build.php ;默认自动生成配置文件
composer.json ;composer安装配置文件
think.php ;命令行入口文件
如上面的目录结构,将服务器入口放在/public
文件夹中,此时访问localhost
则自动访问/public/index.php
入口文件。ThinkPHP框架默认是单入口框架,所有请求全部经过入口文件index.php
来进行访问。
可以把index.php
文件理解成整个TP框架的启动文件,PHP通过加载这个文件将整个框架所需要的PHP文件全部加载到内存中以供后续的调用。
来看看index.php
文件的内容
// [ 应用入口文件 ]
// 定义应用目录
define(‘APP_PATH‘, __DIR__ . ‘/../application/‘);
// 加载框架引导文件
require __DIR__ . ‘/../thinkphp/start.php‘;
如果不去管APP_PATH
常量的定义,那么index.php
入口文件只做了一件事,那就是加载了另一个文件start.php
。
当然,index.php
文件中还能做一些其他的事情,比如定义别的常量,不过这里不用去管那么多。
接下来去找start.php
文件,在/tp5/thinkphp/
文件夹里,打开
namespace think;
// ThinkPHP 引导文件
// 加载基础文件
require __DIR__ . ‘/base.php‘;
// 执行应用
App::run()->send();
这个文件做了三件事
think
base.php
第二步加载base.php
文件,这个文件主要完成了常量定义、注册自动加载、注册错误和异常处理机制、加载惯例配置文件(convention.php)这些步骤。
注册自动加载和错误异常处理机制这两部可以简单的理解成完成这两步后所有框架写好的类文件里的类都可以直接在代码中调用了,就比如上面调用了App类的静态方法run()。
第三步执行的run()方法可以在/tp5/thinkphp/library/think/App.php
文件中找到对应方法,这个方法是整个框架的核心方法,实现了路由转换、获取调度信息、根据调度信息执行相应模块控制器的方法、获取方法返回数据、将返回数据赋值给Response
对象等一系列操作。最后,调用返回的Response
对象的send()
方法将信息返回给客户端,一次完整的http请求完成。
来源 http://www.jianshu.com/p/cd5cee8168f7
标签:out 语言 ica 引导 服务器 ons 直接 get 简单
原文地址:http://www.cnblogs.com/mengor/p/7771528.html