Exphp代码走读

Main.php文件

<?php 
if(!defined(‘APP‘)){
    exit(‘APP does not defined‘);
}
//必须先定义APP常量

if(DBUG==1){
    ini_set(‘display_errors‘,1);
    error_reporting(E_ALL ^ E_NOTICE);
}else{
    ini_set(‘display_errors‘,0);
    error_reporting(0);
}
//判断DEBUG是否设置为1,为1开启错误提示,其余关闭错误提示

/*
if(ini_get(‘register_globals‘)){
exit(‘php.ini register_globals must is off!‘);
}
//必须关闭注册为全局变量的使用

if(ini_get(‘session_auto_start‘)!=0){
exit(‘php.ini session_auto_start must is 0 !‘);
}
//必须关闭session的自动启动

if(!defined(‘STDIN‘) && !in_array(getsrv(‘REQUEST_METHOD‘),array(‘GET‘,‘POST‘,‘PUT‘,‘DELETE‘,‘OPTIONS‘,‘HEAD‘))){
exit(‘Invalid Request Method‘);
}
*/

unset($_REQUEST,$HTTP_ENV_VARS,$HTTP_POST_VARS,$HTTP_GET_VARS,$HTTP_COOKIE_VARS,$HTTP_SERVER_VARS,$HTTP_POST_FILES);
//过滤REQUEST和旧版本的php参数

define(‘VERSION‘,‘5.0.0.1403150‘);

define(‘SYSDIR‘,realpath(__DIR__));
//__DIR__是php5.4以后才有的,之前的版本可以用dirname(__FILE__)实现

define(‘ABSROOT‘,substr(SYSDIR,0,-7));


if(!defined(‘APPIN‘)){
define(‘APPIN‘,‘App‘);
}
//定义应用的顶级目录,默认为App


if(!defined(‘APPNAME‘)){
define(‘APPNAME‘,APP);
}
//定义应用的别名,默认APPNAME==APP
//
//
define(‘APPROOT‘,ABSROOT.‘/‘.APPIN);
//定义应用的顶级目录的绝对路径
define(‘APPDIR‘,APPROOT.‘/‘.APPNAME);
//定义应用的绝对路径
define(‘APPNS‘,APPIN.‘\\‘.APPNAME);
//定义命名空间,如App\\test

date_default_timezone_set(‘Etc/GMT-8‘);
//定义默认的时区

require SYSDIR . ‘/Core/common.php‘;
//加载System/Core/common.php 文件
//
spl_autoload_register(‘autoload‘);
//注册自动加载函数
//
//
//$App = new System\Core\App();
//实例化应用类App
//$App->run();
//运行App

common.php

<?php



function autoload($className){
    $classPath = ABSROOT . ‘/‘ . str_replace(‘\\‘,‘/‘,$className) . ‘.php‘;
//根据className得到文件的路径,把\替换成/
    if(is_file($classPath)){
        //文件存在,加载文件
        require $classPath;
    }else{
        throw new \Exception($className.‘ does not exists.‘,404);
        //抛出异常
    }
}


//$callback 1:NULL,调用函数。2:不为false,绑定函数,3,false,接触绑定
//$value 1,事件存在,为参数,2,事件不存在,为默认值
function event($event,$value=NULL,$callback=NULL){
    static $_eventStore;

    if($callback===NULL){
        if(isset($_eventStore[$event])){
            foreach($_eventStore[$event] as $function){
            $value = call_user_func($function,$value);
            }
        }
        return $value;
    }else{
        if($callback){
        $_eventStore[$event][] = $callback;
        }else{
        unset($_eventStore[$event]);
        }
    }
        
}


function event2($event,$callback=NULL,$params=‘‘){

    static $_eventMaps;
    if($callback === NULL){
            foreach($_eventMaps[$event] as $function){
            call_user_func_array($function,$params);
            }
    }else{
          if(is_callable($callback)){
          $_eventMaps[$event][] = $callback;
          }elseif(!$callback){
          unset($_eventMaps[$event]);
          }else{
          exit(‘error‘);
          }
    }

}

//$key=NULL,返回$_configStore;
//$key=array,$_configStore = $key;
//isset($_configStore[$key])?$_configStore[$key]:$defaultValue 
function config_item($key=NULL,$defaultValue=NULL){
    static $_configStore;

    if($key === NULL){
    return $_configStore;
    }

    if(is_array($key)){
        $_configStore=$key;
    return ;
    }

    if(!isset($_configStore[$key])){
    return $defaultValue;
    }

    return $_configStore[$key];
}


function config_item2($key=‘‘,$value=‘‘){
    static $_configMaps=array();
    if(is_array($key)){
        $_configMaps = array_merge($_configMaps,$key);
    }elseif($key == ‘‘){
        return $_configMaps;
    }elseif($value == ‘‘){
    return $_configMaps[$key];
    }else{
    $_configMaps[$key] = $value;
    }
}

//$key===NULL,return $_globalStore
//$value===NULL,return $_globalStore[$key]
//is_array($key)?$_globalStore+=$key:$_globalStore[$key]=$value;
function global_item($key=NULL,$value=NULL){
    static $_globalStore = array();
    if($key === NULL){
        return $_globalStore;
    }

    if($value===NULL){
        if(isset($_globalStore[$key])){
        return $_globalStore[$key];
        }
        return NULL;
    }else{
        if(is_array($key)){
        $_globalStore += $key;
        }else{
        $_globalStore[$key] = $value;
        }
    }

}

function global_item($key=NULL,$value=NULL){
    static $_globalStore = array();
    if($key === NULL){
    return $_globalStore;
    }
    if($value===NULL){
        if(isset($_globalStore[$key])){
        return $_globalStore[$key];
        }
        return NULL;
    }else{
        if(is_array($key)){
        $_globalStore+=$key;
        }else{
        $_globalStore[$key] = $value;
        }
    }
}

//$expire<0,del($key);
//
function cache_item($key,$value=NULL,$expire=864000){i
    global $App;
if($expire < 0){
return $App->Cache->del($key);
}
if($value===NULL){
return $App->Cache->get($key,$expire);
}else{
$App->Cache->set($key,$value,$expire);
}
}


function cache_item2($key,$value,$expire){
    global $App;
    if($expire < 0){
    return $App->Cache->del($key);
    }
    if($value===NULL){
    return $App->Cache->get($key,$expire);
    }else{
    return $App->Cache->set($key,$value,$expire);
    }
}

function get_item($key,$itemOption=NULL){
    if($itemOption === TRUE){
    if(isset($_GET[$key]))?numf($_GET[$key]):0;
    }else{
    if(isset($_GET[$key]))?(is_string($_GET[$key])?strf($_GET[$key],$itemOption):$_GET[$key]):‘‘;
    }
}


function post_item($key,$itemOption=NULL){
    if($itemOption === TRUE){
    return isset($_POST[$key])?numf($_POST[$key]):0;
    }else{
    return isset($_POST[$key])?(is_string($_POST[$key])?strf($_POST[$key],$itemOption):$_POST[$key]):‘‘;  
    }
}

function cookie_item($key,$value=NULL,$expire=8640000){
    $key = config_item(‘cookie_pre‘) . $key;
    if($value === NULL){
    return isset($_COOKIE[$key])?trim($_COOKIE[$key]):‘‘;
    }else{
    setcookie($key,$value,$expire?global_item(‘timestamp‘)+$expire : 0,‘/‘,config_item(‘cookie_domain‘));
    }
}

function cookie_item2($key,$value=NULL,$expire=8640000){
    $key=config_item(‘cookie_pre‘).$key;
    if($value===NULL){
    return isset($_COOKIE[$key])?trim($_COOKIE[$key]):‘‘;
    }else{
    setcookie($key,$value,$expire?global_item(‘timestamp‘)+$expire:0,‘/‘,config_item(‘cookie_domain‘));
    }
}

function getsrv($key){
return isset($_SERVER[$key])?$_SERVER[$key]:‘‘;
}

function addslashess($var){
    if(is_array($var)){
        foreach($var as $key=>$val){
    $var[$key] = addslashess($val);
        }
    }else{
    $var = addslashes($var);
    }
    return $var;
}


function safe_filter($var){
return addslashess($var);
}

function numf($var){
    return is_numeric($var) ? $var:intval($var);
}

function strf($var,$allowableTags=NULL){
    return trim(($allowableTags)?$var:strip_tags($var,$allowableTags))
}

function arrayf($var,$separator=‘,‘){
return is_array($var)?$var:explode($separator,$var);
}

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。