Example #1
0
 public static function run()
 {
     //生成工程套装(模块包、类库包)
     //$applications = explode('|',APPLICATIONS);
     //加载模块列表
     @($applications = (include PORJECT_ROOT . '/Config/modules.config.php'));
     //如果未发现模块列表,则默认生成Home模块应用
     if (!$applications) {
         $applications = array('Home');
     }
     //应用生成路径
     $application_path = PORJECT_ROOT . '/Project/';
     //模块
     $models = array();
     //模块别名包
     $models_alias = array();
     //使用别名的模块
     $use_alias_models = array();
     //模块生成状态集
     $status = array();
     foreach ($applications as $k => $v) {
         //别名处理
         @(list($k, $v) = explode(':', $v));
         $models[$k] = $v;
         //该模块设置了别名
         if (isset($v)) {
             $models_alias[ucfirst($v)] = $k;
             array_push($use_alias_models, $k);
         }
         //模块包路径
         $dir = array($application_path . ucfirst($k), $application_path . $k . '/Model', $application_path . ucfirst($k) . '/Controller');
         //生成模块
         foreach ($dir as $val) {
             if (!createDir($val)) {
                 //生成错误时,抛出错误状态
                 array_push($status, 0);
                 //写入日志
                 writeLog($val . ' 目录创建失败 ×');
             }
         }
     }
     //生成类库包
     $libs = array(PORJECT_ROOT . '/Lib/Class', PORJECT_ROOT . '/Lib/Function', PORJECT_ROOT . '/Config', PORJECT_ROOT . '/Config/SmartyConfig', PORJECT_ROOT . '/Skin', PORJECT_ROOT . '/Skin/css', PORJECT_ROOT . '/Skin/js', PORJECT_ROOT . '/Skin/images', PORJECT_ROOT . '/Skin/Templates', PORJECT_ROOT . '/Skin/Templates/Default', PORJECT_ROOT . '/Skin/Templates_c/Default', PORJECT_ROOT . '/Runtime', PORJECT_ROOT . '/Runtime/Cache', PORJECT_ROOT . '/Runtime/Data', PORJECT_ROOT . '/Runtime/Logs', PORJECT_ROOT . '/Runtime/Temp');
     foreach ($libs as $v) {
         if (!createDir($v)) {
             //生成错误时,抛出错误状态
             array_push($status, 0);
             //写入日志
             writeLog($v . ' 目录创建失败 ×');
         }
     }
     //生成模块别名包
     setArray($models_alias, PORJECT_ROOT . '/Runtime/Data/', 'models_alias.php');
     //生成使用别名的模块集合
     setArray($use_alias_models, PORJECT_ROOT . '/Runtime/Data/', 'use_alias_models.php');
     //创建目录出现错误时
     if (!empty($status)) {
         echo "至少有" . count($status) . "个目录创建失败,请查看日志详情!";
     }
     //生成默认配置文件
     $defaultConfigName = 'config.php';
     $configPath = PORJECT_ROOT . '/Config/';
     if (!file_exists($configPath . $defaultConfigName)) {
         //默认配置文件不存在时生成默认配置文件
         setArray(array(), $configPath, $defaultConfigName);
     }
     //生成模块列表配置
     $modulesConfigName = 'modules.config.php';
     if (!file_exists($configPath . $modulesConfigName)) {
         //默认配置文件不存在时生成默认配置文件
         setArray($applications, $configPath, $modulesConfigName);
     }
     //在默认及每个模块下面生成默认欢迎Index控制器
     foreach ($applications as $k => $v) {
         //别名处理
         @(list($k, $v) = explode(':', $v));
         //控制器代码
         $index_controller = "<?php\r\nnamespace " . ucfirst($k) . "\\Controller;\r\nuse Frame\\Controller;\r\nclass IndexController extends Controller\r\n{\r\n\tpublic function index()\r\n\t{\r\n\t\techo 'Congratulations! Create project success, welcome to Frame<br/>您当前访问的是:<span style=\"font-size:14px;font-weight:bold;\">" . ucfirst($k) . "</span> 模块下的 <span style=\"font-size:14px;font-weight:bold;\">Index</span> 控制器下的 <span style=\"font-size:14px;font-weight:bold;\">index</span> 方法!';\r\n\t}\r\n}\r\n?>";
         //控制器名称
         $controller_name = PORJECT_ROOT . '/Project/' . ucfirst($k) . '/Controller/IndexController.class.php';
         if (!file_exists($controller_name)) {
             file_put_contents($controller_name, $index_controller);
         }
     }
     //派生分发到控制器
     $controller_class = '\\' . APPLICATION_NAME . '\\Controller\\' . CONTROLLER_NAME . 'Controller';
     $controller_action = ACTION_NAME;
     //实例化对象
     $Object = new $controller_class();
     //执行当前控制函数
     $Object->{$controller_action}();
 }
Example #2
0
 public function addAll($data = array(), $table = null)
 {
     $table = $table ? $table : self::$table;
     //表前缀
     $prefix = is_array($table) && !empty($table['prefix']) ? $table['prefix'] : $this->tablePrefix;
     //表名
     $tablename = is_array($table) && !empty($table['table']) ? $table['table'] : self::$table;
     //表字段
     $fields = array();
     if (file_exists(ROOT_PATH . '/Runtime/Data/Field/' . $prefix . $tablename . '.php') && DEBUG == false) {
         //生成字段
         $fields = (include ROOT_PATH . '/Runtime/Data/Field/' . $prefix . $tablename . '.php');
     } else {
         //生成字段
         $fields = self::getTableField(array('prefix' => $prefix, 'table' => $tablename));
         //缓存到文件
         setArray($fields, ROOT_PATH . '/Runtime/Data/Field/', $prefix . $tablename . '.php');
     }
     //过滤字段
     if (!empty($fields)) {
         foreach ($data as $key => $val) {
             foreach ($val as $key1 => $val1) {
                 if (!in_array($key1, $fields['fields'])) {
                     unset($data[$key][$key1]);
                 }
             }
         }
     }
     //插入数据组合
     foreach ($data as $val) {
         static $datas;
         $keys = '';
         $vals = '';
         if (is_array($val) && !empty($val)) {
             foreach ($val as $key1 => $val1) {
                 //字段组合
                 $keys .= $key1 . ',';
                 //数据组合
                 $vals .= '"' . $val1 . '",';
                 //语句组合
             }
             $keys = substr($keys, 0, -1);
             $vals = substr($vals, 0, -1);
         }
         $datas .= '(' . $vals . '),';
     }
     //截取掉最后一个连接符,追加上语句结束符
     $datas = substr($datas, 0, -1) . ';';
     $sql = 'INSERT INTO ' . $prefix . $tablename . ' (' . $keys . ') VALUES ' . $datas;
     if (self::query($sql)) {
         return self::getInsertId();
     }
     return false;
 }