# 目錄結構
## 例子
在安裝完畢后,您訪問XPHP目錄,會返回404錯誤;
訪問 `/index.html`,就可以看到樣例頁面。它包括了XPHP的版本號。
## 目錄結構
- App (應用主目錄)
- Home (示例Home應用目錄)
- Controller (控制器目錄)
- IndexController.class.php (首頁控制器)
- Model (數據模型目錄)
- Lib (庫目錄)
- X (框架目錄)
- App.class.php (應用類)
- Autoloader.php (自動加載器)
- Controller.class.php (控制器基類)
- Error.class.php (錯誤處理器)
- Header.class.php (Http頭處理器)
- Model.class.php (模型基類)
- Route.class.php (路由類)
- View.class.php (模板處理器)
- Log.class.php (日志處理器)
- Var (數據目錄)
- Data (XDO數據目錄)
- Log (日志目錄)
- info.log (記錄日志)
- error.log (錯誤日志)
- Lang (語言目錄-i18n)
- zh_cn.json (系統中文語言包)
- en_us.json (系統英文語言包)
- Route (路由配置目錄)
- Index.json (示例應用路由)
- Template (模板目錄)
- default (默認模板目錄)
- System (XPHP系統所需模板目錄)
- Error.tpl (系統錯誤模板)
- HTTP_E.tpl (404/500/503等錯誤模板)
- Home (示例應用模板)
- index.tpl (`/index.html`的模板)
- vendor (composer庫目錄)
- autoload.php (自動加載器)
- ... (一堆第三方庫文件)
- .htaccess (Apache偽靜態配置樣例文件)
- Config.php (主配置文件)
- index.php (入口文件)
- composer.json (composer依賴文件)
- composer.lock (composer安裝完成鎖文件)
- LICENSE (MIT許可協議)
- README.md (GitHub README)
## 配置文件
一個正確的`Config.php`看上去是這樣的:
```php
<?php
$GLOBALS['_C']['Template'] = "default"; //模板 Template
$GLOBALS['_C']['Language'] = "zh_cn"; //語言 Language
$GLOBALS['_C']['RouteBase'] = "/XPHP"; //index.php所在相對站點根目錄路徑
$GLOBALS['_C']['Log'] = array( //日志文件名 Log Filename
"INFO" => SysDir."Var/Log/info.log",
// "WARNING" => SysDir.'Var/Log/warning.log',
"ERROR" => SysDir.'Var/Log/error.log'
);
$GLOBALS['_C']['enableORM'] = true; //開啟ORMDB
//-----------------ORMDB MySQL Example-----------------
$GLOBALS['_C']['ORMDB'] = array( //ORM數據庫配置 ORMDB Configure
'connection_string' => 'mysql:host=localhost;dbname=xphp;charset=utf8', //DSN
'driver_options' => array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'), //PDO Option
'username' => 'root', //用戶名 username
'password' => '', //密碼 password
'logging' => true, //開啟Query日志 Enable Query Log
'caching' => true, //開啟緩存 Enalble Cache
'caching_auto_clear'=> true //自動清理緩存 Auto Clear Cache
);
//-----------------ORMDB SQLite Example-----------------
// $GLOBALS['_C']['ORMDB'] = array( //ORM數據庫配置 ORMDB Configure
// 'connection_string' => 'sqlite:'.DatDir.'xphp.db', //DSN
// 'logging' => true //開啟Query日志 Enable Query Log
// 'caching' => true, //開啟緩存 Enalble Cache
// 'caching_auto_clear'=> true //自動清理緩存 Auto Clear Cache
// );
```
看注釋,應該就會改了吧。
`ORM`就是在Model里面連接MySQL,SQLite等數據庫的封裝,XPHP選擇了`Idiorm`作為默認數據庫處理,文檔: https://idiorm.readthedocs.io
注意:所有路由的Base前都會自動加上`$GLOBALS['_C']['RouteBase']`。
什么是路由Base,下一節會講到。