My favorites | Sign in
Project Home Wiki
Search
for
tmphp_start  

快速学习TMPHP
Updated Dec 23, 2009 by heiyeluren@gmail.com

快速学习TMPHP

安装TMPHP

  • 下载TMPHP:http://tmphp.googlecode.com
  • 解压tmphp-framework-VERSION.zip (Win32平台使用 Winzip/WinRAR/7Zip 等解压,Unix/Linux 使用 unzip 命令进行解压)
  • 放置到你指定的文件目录下,最好把 demo 和 tmphp 放在同一级目录下,然后设置你的Web服务器(一般建议使用Apache) 的DocumentRoot到 demo/view 目录:
  • #
    # DocumentRoot: The directory out of which you will serve your
    # documents. By default, all requests are taken from this directory, but
    # symbolic links and aliases may be used to point to other locations.
    #
    DocumentRoot "/path-to/tmphp-framework/demo/view"
    
如果文件夹有权限问题,建议设置为655权限,Apache访问设置为 Allow from all:
<Directory />
    Options Indexes FollowSymLinks
    AllowOverride None
    Order deny,allow
    allow from all
</Directory>
  • 重新启动 Apache: Win32上使用控制工具或者 net start apache, Linux 上使用 apachectl -k start
  • 访问 http://domain/ 或者 http://localhost,出现 TMPHP demo首页,说明安装完成,如果失败请检查以上步骤



使用TMPHP

  • 初始化目录结构

  • 我们的应用目录要包含一些基础的目录设定,这个是框架要求的,假设我们的应用是 demo,放在 /path/to/demo 路径,那么我们在 demo 目录中最少要包括如下目录:
        # demo/cache      (存放各种临时缓存文件,包括Smarty编译文件等等)
        # demo/config     (应用的配置文件存放目录)
        # demo/controller (应用的控制器文件保存目录)
        # demo/crontab    (应用的定期脚本存放目录)
        # demo/model      (应用的模型Model类存放目录)
        # demo/view       (应用的视图/模板和网站主目录路径)

  • 设置配置文件

配置在 demo/config/Config.ini,如果你追求更快性能,可以使用数组方式,建立一个 demo/config/Config.php 文件,里面写上配置内容:
<?php
return array (
	//公共配置
	'Common' => array (
		'UrlReWrite' => '',		//是否开启urlrewrite
		'CharSet' => 'UTF-8',		//文档编码
		'TimeZone' => 'Asia/Chongqing',	//时区设置
		'UrlHtml' => '1',		//是否开启伪静态
		'AutoFilter' => '1',		//是否进行自动对POST.GET.COOKIE进行过滤
		'HostEnv' => 'dev',		//当前框架运行环境: 开发环境(dev)/测试环境(test)/运营生产环境(prod)
	),
	'Framework' => array (
		'ControllerName' => 'c',	//控制器变量名
		'ActionName' => 'a',		//Action 变量名
		'DefaultController' => 'index',	//缺省的控制器名
		'DefaultAction' => 'index',	//缺省的Action名
	),
	//数据库配置
	'DataBase' => array (
		'driver' => 'DB_Mysql',		//数据库访问驱动
		'host' => 'localhost',		//数据库主机地址
		'user' => 'root',		//数据库连接账户名
		'pwd' => '',			//数据库连接密码
		'db' => 'test',			//数据库名
		'charset' => 'utf8',		//数据库字符集
	),
);

如果你喜欢ini的配置方式,也可以建立 demo/config/Config.ini 文件,大致内容如下:
;;
;; 公共配置
;;
[Common]
UrlReWrite = false			;; 是否开启urlrewrite
CharSet = UTF-8				;; 文档编码
TimeZone = Asia/Chongqing		;; 时区设置
UrlHtml = true				;; 是否开启伪静态
AutoFilter = true			;; 是否进行自动对POST.GET.COOKIE进行过滤
HostEnv	= dev				;; 当前框架运行环境: 开发环境(dev)/测试环境(test)/运营生产环境(prod)

[Framework]
ControllerName = c			;; 控制器变量名
ActionName = a				;; Action 变量名
DefaultController = index		;; 缺省的控制器名
DefaultAction = index			;; 缺省的Action名


;;
;; 数据库配置
;;
[DataBase]
;;Connection = false			;; 是否连接数据库
driver = DB_Mysql			;; 数据库访问驱动
host = localhost			;; 数据库主机地址
user = root				;; 数据库连接账户名
pwd = 					;; 数据库连接密码
db = test				;; 数据库名
charset = utf8				;; 数据库字符集
  • 编写入口文件

入口文件就是我们Web服务器会首先访问的文件,一般是 index.php,我们这里的示例是 demo/view/inddex.php 文件,这个文件主要设定框架主目录、应用主目录、进行dispatch操作等,我们看我们demo 的 index.php 文件:
<?php
/********************************
 *  描述: 应用框架入口示例文件
 ********************************/
/**
 * 定义基本路径常量
 */
define("APP_DIR", str_replace("\\", "/", realpath(dirname(__FILE__)."/..")));		//应用路径
define("TM_ROOT_DIR", str_replace("\\", "/", realpath(APP_DIR . "../../tmphp/")));	//框架路径
$confFile =  APP_DIR .'/config/Config.php';						//配置文件

/**
 * 设定包含文件路径
 */
set_include_path(get_include_path() . PATH_SEPARATOR .TMPHP_DIR);


/**
 * 包含基本入口文件和配置文件
 */
require_once APP_DIR .'/config/AppConst.class.php';
require_once TM_ROOT_DIR .'/tmphp.php';



/**
 * 分发处理
 */
try {
	TM_PHP::getInstance()->dispatch($confFile); 
} catch (TM_Exception $te){
	echo $te->getMessage(); exit;
} catch (Exception $e){
	echo $e->getMessage(); exit;
}
基本现在我们的应用就可以工作了,我们访问我们的框架,应该会在网页里看到如下错误提示:
TMPHP Exception: controller file /path/to/tmphp-framework/demo/controller/indexController.class.php not exist or not readable
下面我们学习如何建立控制器
  • 编写控制器文件

  • 我们缺省的控制器是 index ,那么我们建立一个控制器类在 demo/controller/indexController.class.php:
    <?php
    /********************************
     *  描述: 缺省控制器示例
    /********************************
    
    /**
     * 缺省控制器类
     */
    class indexController extends TM_Controller
    {
    
    }
    
这时候访问我们的应用,网页里会提示:
TMPHP Exception: controller class method indexController->indexAction() not exist
说我们没有缺省的Action方法,我们在 indexController 类里建立一个 indexAction() 方法:
<?php
/********************************
 *  描述: 缺省控制器示例
/********************************

/**
 * 缺省控制器类
 */
class indexController extends TM_Controller
{
	/**
	 * 缺省首页展示Action
	 *
	 * @return void
	 */
	public function indexAction(){
		echo "我是一个缺省Action";
	}
}
访问应用,应该在网页里看到显示:
我是一个缺省Action
建立基本应用成功!

Comment by Jimmy.Ya...@gmail.com, Dec 5, 2011

看看是什么东西


Sign in to add a comment
Powered by Google Project Hosting