コード例 #1
0
ファイル: ViewModel.class.php プロジェクト: liunanx/php1009
 /**
  * 得到完整的数据表名
  * @access public
  * @return string
  */
 public function getTableName()
 {
     if (empty($this->trueTableName)) {
         $tableName = '';
         foreach ($this->viewFields as $key => $view) {
             // 获取数据表名称
             if (isset($view['_table'])) {
                 // 2011/10/17 添加实际表名定义支持 可以实现同一个表的视图
                 $tableName .= $view['_table'];
                 $prefix = $this->tablePrefix;
                 $tableName = preg_replace_callback("/__([A-Z_-]+)__/sU", function ($match) use($prefix) {
                     return $prefix . strtolower($match[1]);
                 }, $tableName);
             } else {
                 $class = parse_res_name($key, C('DEFAULT_M_LAYER'));
                 $Model = class_exists($class) ? new $class() : M($key);
                 $tableName .= $Model->getTableName();
             }
             // 表别名定义
             $tableName .= !empty($view['_as']) ? ' ' . $view['_as'] : ' ' . $key;
             // 支持ON 条件定义
             $tableName .= !empty($view['_on']) ? ' ON ' . $view['_on'] : '';
             // 指定JOIN类型 例如 RIGHT INNER LEFT 下一个表有效
             $type = !empty($view['_type']) ? $view['_type'] : '';
             $tableName .= ' ' . strtoupper($type) . ' JOIN ';
             $len = strlen($type . '_JOIN ');
         }
         $tableName = substr($tableName, 0, -$len);
         $this->trueTableName = $tableName;
     }
     return $this->trueTableName;
 }
コード例 #2
0
ファイル: function.php プロジェクト: vkey24/crazy-grab
/**
 * 实例化模型类 格式 [资源://][模块/]模型
 * @param string $name 资源地址
 * @param string $layer 模型层名称
 * @return Model
 */
function D($name = '', $layer = '')
{
    if (empty($name)) {
        return new System\Model();
    }
    static $_model = array();
    $layer = $layer ?: C('DEFAULT_M_LAYER');
    if (isset($_model[$name . $layer])) {
        return $_model[$name . $layer];
    }
    $class = parse_res_name($name, $layer);
    if (class_exists($class)) {
        $model = new $class(basename($name));
    } elseif (false === strpos($name, '/')) {
        // 自动加载公共模块下面的模型
        if (!C('APP_USE_NAMESPACE')) {
            import('Common/' . $layer . '/' . $class);
        } else {
            $class = '\\Common\\' . $layer . '\\' . $name . $layer;
        }
        $model = class_exists($class) ? new $class($name) : new System\Model($name);
    } else {
        System\Log::record('D方法实例化没找到模型类' . $class, System\Log::NOTICE);
        $model = new System\Model(basename($name));
    }
    $_model[$name . $layer] = $model;
    return $model;
}
コード例 #3
0
ファイル: functions.php プロジェクト: xs5816/mictp
/**
 * 实例化模型类 格式 [资源://][模块/]模型
 * @param string $name 资源地址
 * @param string $layer 模型层名称
 * @return Think\Model
 */
function D($name = '')
{
    if (empty($name)) {
        return new Think\Model();
    }
    static $_model = array();
    $layer = C('DEFAULT_M_LAYER');
    if (isset($_model[$name . $layer])) {
        return $_model[$name . $layer];
    }
    $class = parse_res_name($name, $layer);
    if (class_exists($class)) {
        $model = new $class(basename($name));
    } elseif (false === strpos($name, '/')) {
        $model = new Think\Model($name);
    } else {
        $model = new Think\Model(basename($name));
    }
    $_model[$name . $layer] = $model;
    return $model;
}
コード例 #4
0
ファイル: functions.php プロジェクト: shaoxianhui/guodaxia
/**
 * 实例化多层控制器 格式:[资源://][模块/]控制器
 * @param string $name 资源地址
 * @param string $layer 控制层名称
 * @param integer $level 控制器层次
 * @return Think\Controller|false
 */
function A($name, $layer = '', $level = 0)
{
    static $_action = array();
    $layer = $layer ?: C('DEFAULT_C_LAYER');
    $level = $level ?: ($layer == C('DEFAULT_C_LAYER') ? C('CONTROLLER_LEVEL') : 1);
    if (isset($_action[$name . $layer])) {
        return $_action[$name . $layer];
    }
    $class = parse_res_name($name, $layer, $level);
    if (class_exists($class)) {
        $action = new $class();
        $_action[$name . $layer] = $action;
        return $action;
    } else {
        return false;
    }
}
コード例 #5
0
ファイル: functions.php プロジェクト: TedaLIEz/AUNET
 * @param string $baseUrl 起始路径
 * @param string $ext 导入的文件扩展名
 * @return void
 */
function load($name, $baseUrl = '', $ext = '.php')
{
    $name = str_replace(array('.', '#'), array('/', '.'), $name);
    if (empty($baseUrl)) {
        if (0 === strpos($name, '@/')) {
            //加载当前模块函数库
            $baseUrl = MODULE_PATH . 'Common/';
            $name = substr($name, 2);
        } else {
            //加载其他模块函数库
            $array = explode('/', $name);
            $baseUrl = APP_PATH . array_shift($array) . '/Common/';
            $name = implode('/', $array);
コード例 #6
0
ファイル: functions.php プロジェクト: gaomengsuijia/1122
/**
 * A函数用于实例化控制器 格式:[资源://][模块/]控制器
 * @param string $name 资源地址
 * @param string $layer 控制层名称
 * @param integer $level 控制器层次
 * @return Controller|false
 */
function A($name, $layer = '', $level = '')
{
    //$name = "User";
    static $_action = array();
    $layer = $layer ? $layer : C('DEFAULT_C_LAYER');
    $level = $level ? $level : ($layer == C('DEFAULT_C_LAYER') ? C('CONTROLLER_LEVEL') : 1);
    if (isset($_action[$name . $layer])) {
        return $_action[$name . $layer];
    }
    //$name = "User";
    //$lay = "Controller";
    //$level = 1;
    $class = parse_res_name($name, $layer, $level);
    if (class_exists($class)) {
        $action = new $class();
        $_action[$name . $layer] = $action;
        return $action;
    } else {
        return false;
    }
}
コード例 #7
0
ファイル: WechatWrap.class.php プロジェクト: skyshow/ticket
 private static function newObj($name, $layer)
 {
     static $_obj = array();
     $class = parse_res_name($name, $layer);
     if (isset($_obj[$name . $layer])) {
         return $_obj[$name . $layer];
     }
     $class = parse_res_name($name, $layer);
     if (class_exists($class)) {
         $model = new $class($name);
     }
     $_obj[$name . $layer] = $model;
     return $model;
 }