国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

[李景山php]thinkphp核心源碼注釋-Build.class.php

2020-03-22 18:15:48
字體:
供稿:網(wǎng)友
  • <?php// +----------------------------------------------------------------------// | ThinkPHP [ WE CAN DO IT JUST THINK IT ]// +----------------------------------------------------------------------// | Copyright (c) 2006-2014 http://thinkVeVb.com All rights reserved.// +----------------------------------------------------------------------// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )// +----------------------------------------------------------------------// | Author: liu21st <liu21st@gmail.com>// +----------------------------------------------------------------------namespace Think;/** * 用于ThinkPHP的自動生成 * 這里的自動生成,我還沒怎么注意過呢,哈哈 */html' target='_blank'>class Build {    static protected $controller   =   '<?phpnamespace [MODULE]/Controller;use Think/Controller;class [CONTROLLER]Controller extends Controller {    public function index(){        $this->show(/'<style type="text/css">*{ padding: 0; margin: 0; } div{ padding: 4px 48px;} body{ background: #fff; font-family: "微軟雅黑"; color: #333;font-size:24px} h3{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.8em; font-size: 36px } a,a:hover{color:blue;}</style><div> <h3>:)</h3><p>歡迎使用 <b>ThinkPHP</b>!</p><br/>版本 V{$Think.version}</div><script type="text/javascript" src="http://ad.topthink.com/Public/static/client.js"></script><thinkad id="ad_55e75dfae343f5a1"></thinkad><script type="text/javascript" src="http://tajs.qq.com/stats?sId=9347272" charset="UTF-8"></script>/',/'utf-8/');    }}';    // 這里的 是 默認 生成 到 系統(tǒng)首頁里面的    static protected $model         =   '<?phpnamespace [MODULE]/Model;use Think/Model;class [MODEL]Model extends Model {}';// 空模版的開始,好像現(xiàn)在這個沒什么鳥用了    // 檢測應(yīng)用目錄是否需要自動創(chuàng)建    static public function checkDir($module){        if(!is_dir(APP_PATH.$module)) {            // 創(chuàng)建模塊的目錄結(jié)構(gòu)            self::buildAppDir($module);        }elseif(!is_dir(LOG_PATH)){            // 檢查緩存目錄            self::buildRuntime();        }    } // 檢測目錄,同時檢測 緩存目錄 模塊目錄,不存在就創(chuàng)建    // 創(chuàng)建應(yīng)用和模塊的目錄結(jié)構(gòu)    static public function buildAppDir($module) {        // 沒有創(chuàng)建的話自動創(chuàng)建        if(!is_dir(APP_PATH)) mkdir(APP_PATH,0755,true); // 先創(chuàng)建 基礎(chǔ)的 APP_PATH ,755 當(dāng)前權(quán)限 后面的兩者沒有寫入權(quán)限        if(is_writeable(APP_PATH)) { // 開始生成了 里面的東西            $dirs  = array(                COMMON_PATH,                COMMON_PATH.'Common/',                CONF_PATH,                APP_PATH.$module.'/',                APP_PATH.$module.'/Common/',                APP_PATH.$module.'/Controller/',                APP_PATH.$module.'/Model/',                APP_PATH.$module.'/Conf/',                APP_PATH.$module.'/View/',                RUNTIME_PATH,                CACHE_PATH,                CACHE_PATH.$module.'/',                LOG_PATH,                LOG_PATH.$module.'/',                TEMP_PATH,                DATA_PATH,                );            foreach ($dirs as $dir){                if(!is_dir($dir))  mkdir($dir,0755,true);            } // 創(chuàng)建上面的目錄組            // 寫入目錄安全文件            self::buildDirSecure($dirs); // 一般情況下,就是寫入 了一個 里面的 dir 文件 index.html 文件            // 寫入應(yīng)用配置文件            if(!is_file(CONF_PATH.'config'.CONF_EXT)) // 如果存在配置文件,就把里面的配置文件,給他弄過來的                file_put_contents(CONF_PATH.'config'.CONF_EXT,'.php' == CONF_EXT ? "<?php/nreturn array(/n/t//'配置項'=>'配置值'/n);":'');            // 寫入模塊配置文件            if(!is_file(APP_PATH.$module.'/Conf/config'.CONF_EXT)) // 模塊 配置選項                file_put_contents(APP_PATH.$module.'/Conf/config'.CONF_EXT,'.php' == CONF_EXT ? "<?php/nreturn array(/n/t//'配置項'=>'配置值'/n);":'');            // 生成模塊的測試控制器            if(defined('BUILD_CONTROLLER_LIST')){ // 可以直接生成 模塊列表                // 自動生成的控制器列表(注意大小寫) 居然還有這個功能                $list = explode(',',BUILD_CONTROLLER_LIST);                foreach($list as $controller){                    self::buildController($module,$controller);                }            }else{                // 生成默認的控制器                self::buildController($module);            }            // 生成模塊的模型            if(defined('BUILD_MODEL_LIST')){ // 生成對應(yīng)的模型了                // 自動生成的控制器列表(注意大小寫)                $list = explode(',',BUILD_MODEL_LIST);                foreach($list as $model){                    self::buildModel($module,$model);                }            }                    }else{ // 這里是個大痛苦的問題呢            header('Content-Type:text/html; charset=utf-8');            exit('應(yīng)用目錄['.APP_PATH.']不可寫,目錄無法自動生成!<BR>請手動生成項目目錄~');        }    }    // 檢查緩存目錄(Runtime) 如果不存在則自動創(chuàng)建    static public function buildRuntime() {        if(!is_dir(RUNTIME_PATH)) { // 創(chuàng)建目錄            mkdir(RUNTIME_PATH);        }elseif(!is_writeable(RUNTIME_PATH)) {            header('Content-Type:text/html; charset=utf-8');            exit('目錄 [ '.RUNTIME_PATH.' ] 不可寫!');        }        mkdir(CACHE_PATH);  // 模板緩存目錄        if(!is_dir(LOG_PATH))   mkdir(LOG_PATH);    // 日志目錄        if(!is_dir(TEMP_PATH))  mkdir(TEMP_PATH);   // 數(shù)據(jù)緩存目錄        if(!is_dir(DATA_PATH))  mkdir(DATA_PATH);   // 數(shù)據(jù)文件目錄        return true;    } // 創(chuàng)建目錄 了    // 創(chuàng)建控制器類    static public function buildController($module,$controller='Index') {        $file   =   APP_PATH.$module.'/Controller/'.$controller.'Controller'.EXT;        if(!is_file($file)){ // 這里的這個,            $content = str_replace(array('[MODULE]','[CONTROLLER]'),array($module,$controller),self::$controller);            if(!C('APP_USE_NAMESPACE')){                $content    =   preg_replace('/namespace/s(.*?);/','',$content,1);            }            $dir = dirname($file);            if(!is_dir($dir)){                mkdir($dir, 0755, true);            }            file_put_contents($file,$content); // 這里的很容易搞的那個了        }    }    // 創(chuàng)建模型類    static public function buildModel($module,$model) {        $file   =   APP_PATH.$module.'/Model/'.$model.'Model'.EXT;        if(!is_file($file)){            $content = str_replace(array('[MODULE]','[MODEL]'),array($module,$model),self::$model);            if(!C('APP_USE_NAMESPACE')){                $content    =   preg_replace('/namespace/s(.*?);/','',$content,1);            }            $dir = dirname($file);            if(!is_dir($dir)){                mkdir($dir, 0755, true);            }            file_put_contents($file,$content);        }    } // 就是上面的那個改名了    // 生成目錄安全文件    static public function buildDirSecure($dirs=array()) {        // 目錄安全寫入(默認開啟)        defined('BUILD_DIR_SECURE')  or define('BUILD_DIR_SECURE',    true);        if(BUILD_DIR_SECURE) {            defined('DIR_SECURE_FILENAME')  or define('DIR_SECURE_FILENAME',    'index.html');            defined('DIR_SECURE_CONTENT')   or define('DIR_SECURE_CONTENT',     ' ');            // 自動寫入目錄安全文件            $content = DIR_SECURE_CONTENT;            $files = explode(',', DIR_SECURE_FILENAME);            foreach ($files as $filename){                foreach ($dirs as $dir)                    file_put_contents($dir.$filename,$content);            }        }    }// 寫入安全文件到里面}// 總結(jié),其實,就是個目錄 跟 文件的寫入操作類
    PHP編程

    鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

  • 發(fā)表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發(fā)表
    主站蜘蛛池模板: 铜鼓县| 分宜县| 怀集县| 宣城市| 安阳县| 客服| 洛扎县| 土默特右旗| 岳西县| 大城县| 宽城| 南岸区| 宜州市| 剑河县| 乐都县| 昌宁县| 周宁县| 论坛| 思茅市| 普陀区| 灵川县| 海兴县| 衡山县| 邵阳市| 咸丰县| 花莲县| 大丰市| 宁明县| 巴东县| 德化县| 巩义市| 菏泽市| 长子县| 库车县| 水城县| 永修县| 砚山县| 昭通市| 西贡区| 东明县| 克东县|