# 目录结构
## 例子
在安装完毕后,您访问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,下一节会讲到。