[TOC]
# 1.5 修改配置
## 1.3.1 修改`$configure`变量
这就是实例化`\X\Application`(在`/Public/index.php`中)时,传递的一个参数。
### 1.3.1.1 一个标准的示例
```php
$configure = [
"SysDir" => SysDir,
"Path" => [
"Route" => "Var/Route/",
"Application" => "App/",
"Template" => "Var/Template/",
"Cache" => "Var/Cache/"
],
"View" => [
"Start" => "{{",
"End" => "}}",
"ExtName" => ".tpl",
"Template" => "default",
"Cache" => false
],
"Database"=> [
'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
],
"Route" => [
"Base" => ""
],
"Version" => X,
"Debug" => true
];
```
### 1.3.1.2 详解
我想大家猜也猜得出来到底应该怎么改吧。
## 1.3.2 修改`Register.php`
### 1.3.2.1 这是什么
这是将XPHP内部组件注册入容器中的脚本,您如果觉得XPHP的某一个组件不好用(例如Log),您可以轻松的自己封装一个,然后在此处修改默认注册即可。
### 1.3.2.2 标准示例
如果您改错了,可以使用这一份:
```php
<?php
/**
* XPHP Configure File
*
* You can add your providers here.
*
*/
return function ($App) {
$App->container->add('Core.Error', '\Whoops\Run')->
withMethodCall('pushHandler', ['Core.Error.Handler'])->
withMethodCall('pushHandler', [new \League\Container\Argument\RawArgument(function(
$exception, $inspector, $run
) use ($App){
$App->event->emit('Core.Error', $exception, $inspector, $run);
})])->
withMethodCall('allowQuit', [new \League\Container\Argument\RawArgument(false)])->
withMethodCall('register', []);
$App->addBatch([
['Core.Error.Handler', '\Whoops\Handler\PrettyPageHandler'],
['Core.Route', '\X\Route'],
['Core.Model.Database', '\X\Database\Idiorm']
]);
$App->shareBatch([
['Core.Log', '\X\Log'],
['Core.View', '\X\ViewLightnCandy'],
]);
};
```
## 1.3.3 修改`Config.php`
在此文件中,您不仅可以修改系统类的注册,也可以对于`$configure`变量进行修改。
### 1.3.3.1 修改注册
与修改`Register.php`完全一致。
### 1.3.3.2 修改`$configure`
使用
```php
$App->config
```
即可访问到`$configure`变量,您可以随意修改。