Пример #1
0
/**
 * import models of other module
 * 
 * usage:
 *   import('user/User_Model'); // just import User_Model class
 *   import('user/*');
 *   import('user/');
 *   import('user');
 * @param string $model_name
 * @param string $dir_prefix, dir prefix, no the trailing slash, default equal to SimPHP::$gConfig['modroot']
 * @return mixed(boolean or object)
 */
function import($model_name, $dir_prefix = '')
{
    if ('' == $model_name) {
        return FALSE;
    }
    // find class name and dir prefix
    $modroot = SimPHP::$gConfig['modroot'];
    if ('' != $dir_prefix) {
        $modroot = rtrim($dir_prefix, '/');
    }
    $moddir = SIMPHP_ROOT . DS . $modroot;
    $clsname = '';
    $tarr = explode('/', $model_name);
    $tarr[0] = strtolower($tarr[0]);
    //make sure dir is lower
    if (count($tarr) > 1) {
        $clsname = array_pop($tarr);
        //the last one is the checking one
        $moddir .= DS . implode(DS, $tarr);
    } else {
        //When import like Model::import('user');,equal to Model::import('user/*');
        $clsname = '';
        $moddir .= DS . $tarr[0];
    }
    if (!is_dir($moddir)) {
        return FALSE;
    }
    $is_import_dir = '*' == $clsname || '' == $clsname ? TRUE : FALSE;
    // Only import a class
    if (!$is_import_dir) {
        if (SimPHP::isClassLoaded($clsname)) {
            return TRUE;
        }
        $class_file = $moddir . '/' . $clsname . '.php';
        if (file_exists($class_file)) {
            include $class_file;
        }
        return SimPHP::isClassLoaded($clsname);
    }
    // Set class auto load
    SimPHP::registerAutoload(function ($className) use($moddir) {
        if (SimPHP::isClassLoaded($className)) {
            return TRUE;
        }
        $class_file = $moddir . '/' . $className . '.php';
        if (file_exists($class_file)) {
            include $class_file;
        }
        return SimPHP::isClassLoaded($className);
    });
    return TRUE;
}
Пример #2
0
 */
define('RC_ALL', 2047);
/**
 * require constant configure
 */
require SIMPHP_ROOT . '/conf/const.php';
/**
 * require global needed function files
 */
require SIMPHP_CORE . '/func.simphp.php';
require SIMPHP_CORE . '/func.global.php';
require SIMPHP_INCS . '/func.common.php';
/**
 * set core class autoload
 */
SimPHP::registerAutoload();
/**
 * Log dir
 * @var string constant
 */
define('LOG_DIR', SIMPHP_ROOT . Config::get('env.log_dir', '/var/log'));
/**
 * Whether on production env
 * @var string constant
 */
define('ON_PRO', Config::get('env.env') == 'pro' ? TRUE : FALSE);
/**
 * 系统启动类
 *
 */
class SimPHP