WDPHP 1.0的入口文件详解

widuu 2012-11-27 PHP技术 2,645 0 喜欢 (0)

现在还在一直开发中,还没有竣工所以每天只能发一点,等好了后我会给大家详细的教程和使用方法
[php]
<?php
/**
* WDPHP 入口文件
* @package WDPHP
* @author 肖伟
* @version v1.0
* @copyright Copyright (c) 2012. widuu.com
*/

header("Content-type:text/html;charset=utf-8"); //设置编码为utf-8
date_default_timezone_set('PRC'); //设置时区为中国
session_start(); //开启session

define("IN_WDPHP",true); //设置安全机制
define("WDPHP_VERSION","v1.0"); //版本申明
define("WDPHP_PATH",rtrim(WDPHP,"/")."/"); //项目框架路径
define("APP_PATH",rtrim(APP_PATH,"/")."/"); //用户的应用路径
define("APP_NAME",trim(APP_PATH,"./")); //设置项目名称
define("__ROOT__",dirname("WDPHP_PATH")."/"); //项目的根目录
define("TMP_PATH", str_replace(array(".", "/"), "_", ltrim($_SERVER["SCRIPT_NAME"], '/'))."/");

//设置smarty信息

if(!defined("TMP_L"))define("TMP_L","<{"); //设置smarty的左边的标记
if(!defined("TMP_R"))define("TMP_R","}>"); //设置smarty的右边的标记
if(!defined("CSTART"))define("CSTART",false); //设置是否开始缓存,开启为true,不开启为false
if(!defined("CTIME"))define("CTIME",""); //设置缓存时间,必须开启缓存时才能设置

//包含系统配置的文件

$config=__ROOT__."config.inc.php";
if(file_exists($config)){
include $config;
}

//包含框架的核心函数库文件

include WDPHP_PATH."common/functions.php";

//包含全局的函数库文件,用户自定义的函数库

$functions=__ROOT__."common/functions.php";

if(file_exists($functions)){
include $functions;
}

//设置包含目录(类所在的全部目录), PATH_SEPARATOR 分隔符号 Linux(:) Windows(;)
$path=get_include_path(); //原始基目录
$path.=PATH_SEPARATOR.WDPHP_PATH."core/"; //项目所在的核心类文件
$path.=PATH_SEPARATOR.WDPHP_PATH."lib/"; //框架的扩展类目录
$path.=PATH_SEPARATOR.WDPHP_PATH."view/"; //smarty模板类所在的文件
$path.=PATH_SEPARATOR.__ROOT__."class/"; //项目用到的工具类
$controlerpath=__ROOT__."lib/action/".TMP_PATH; //生成控制器所在的路径
$path.=PATH_SERARATOR.$controlerpath; //当前应用控制类所在的目录

//设置include 包含所有文件夹的目录
set_include_path($path);

//设置Debug模式
if(defined("DEBUG") && DEBUG==1){
$GLOBALS["debug"]=1; //初例化开启debug
error_reporting(E_ALL ^ E_NOTICE); //输出除了注意的所有错误报告
include WDPHP_PATH."core/debug.class.php"; //包含debug类
Debug::start(); //开启脚本计算时间
set_error_handler(array("Debug", 'Catcher')); //设置捕获系统异常
}else{
ini_set('display_errors', 'Off'); //屏蔽错误输出
ini_set('log_errors', 'On'); //开启错误日志,将错误报告写入到日志中
ini_set('error_log', __ROOT__.'runtime/error_log'); //指定错误日志文件

}

//自动加载类

function __autoload($className){
switch($className){
case "memcache":
return;
break;
case "Smarty" :
include "Smarty.class.php";
break;
default :
include ucfirst($className).".class.php";
break;

}

}

//判断页面是否开启静态缓存
if(CSTART==0){
Debug::addmsg("<font color='red'>没有开启页面缓存!</font>");
}else{
Debug::addmsg("开启页面缓存,实现页面静态化!");
}
Filecreate::create();
Debug::addmsg("会话ID:".session_id());

//模板文件中所有要的路径,html\css\javascript\image\link等中用到的路径,从WEB服务器的文档根开始

$spath=dirname($_SERVER["SCRIPT_NAME"]);
if($spath="/"||$spath="\\")
$spath="";
$GLOBALS["root"]=$spath."/"; //web服务器项目的根
$GLOBALS["app"]=$_SERVER["SCRIPT_NAME"].'/'; //当前应用的脚本文件
$GLOBALS["url"]=$GLOBALS["app"].$_GET["m"]; //访问当前的应用模块
$GLOBALS["public"]=$GLOBALS["root"]."public/"; //项目全局公共资源目录
$GLOBALS["data"]=$GLOBALS["root"].ltrim(APP_PATH,"./")."templets/".TPL_STYLE."data"; //模板应用资源地址

//控制器类所在的路径
$srccontrolerfile=APP_PATH."action/".ucfirst($_GET["m"])."class.php";

Debug::addmsg("当前访问的控制器类在项目应用目录下的: <b>$srccontrolerfile</b> 文件!");

//控制器类的创建
if(file_exists($srccontrolerfile)){
Filecreate::commoncontroler(APP_PATH."action/",$controlerpath);
Filecreate::action($srccontrolerfile, $controlerpath, $_GET["m"]);

$className=ucfirst($_GET["m"])."Action";

$controler=new $className();
$controler->run();
}else{
Debug::addmsg("<font color='red'>对不起!你访问的模块不存在,应该在".APP_PATH."controls目录下创建文件名为".strtolower($_GET["m"]).".class.php的文件,声明一个类名为".ucfirst($_GET["m"])."的类!</font>");

}

if(defined("DEBUG") && DEBUG==1 && $GLOBALS["debug"]==1){
Debug::stop();
Debug::message();
}

[/php]

转载请注明来自微度网络,本文标题:《WDPHP 1.0的入口文件详解》

喜欢 0 发布评论
Top