1. 程式人生 > 其它 >ThinkPHP 5 程式碼自動生成欄位快取

ThinkPHP 5 程式碼自動生成欄位快取

use think\Db;
use think\Env;
// 更新欄位快取檔案(Runtime目錄在jenkins部署的時候會自動刪除) private function _setColumnCache() { if (Env::get('enviroment')=='develop') return ; // 研發環境,不開啟欄位快取 $config = config('database'); $dbName = $config['database']; $schemeDir = RUNTIME_PATH.'schema'; // 拿一個必定存在的表進行判斷,如果有對應的快取檔案,則表示欄位快取已生成
$menuCacheFile = "$schemeDir/$dbName.$config[prefix]menu.php"; if (file_exists($menuCacheFile)) return true; // 生成欄位快取 if (!is_dir($schemeDir)) @mkdir($schemeDir, 0755, true); $tables = Db::connect($config)->getTables($dbName); foreach ($tables as $table) { $content = '<?php ' . PHP_EOL
. 'return '; $info = Db::connect($config)->getFields($table); $content .= var_export($info, true) . ';'; file_put_contents($schemeDir . DS . $dbName . '.' . $table . EXT, $content); } } // 在需要的地方 $this->_setColumnCache(); 呼叫即可