## 新建core/Config.php
```
<?php
namespace core;
class Config
{
protected $config = [];
// 掃描 config 文件夾,加入到配置的大數組
public function init()
{
foreach (glob(FRAME_BASE_PATH.'/config/*.php') as $file){
$key = str_replace('.php','',basename($file));
$this->config[$key] = require $file;
}
}
// 獲取配置
public function get($key)
{
$keys = explode('.',$key);
$config = $this->config;
foreach ($keys as $key)
$config = $config[$key];
return $config;
}
// 重置配置的值
public function set($key, $val)
{
$keys = explode('.', $key);
$newconfig = &$this->config;
foreach($keys as $key)
$newconfig = &$newconfig[$key]; // 傳址
$newconfig = $val;
}
}
```
### 綁定配置
`app.php`

### 加載配置

現在 配置信息已經完成了,接下來是運行下看看。
### 創建config/database.php
```
<?php
return [
'default' => 'hello world',
'connections' => [
'mysql_one' => [
'driver' => 'mysql',
'host' => '134.175.80.215',
'username' => 'php_frame',
'dbname' => 'php_frame',
'password' => '12345678',
'prefix' => '',
'options' => [
]
],
]
];
```
### 編輯routes/web.php
```
$router->get('/config',function (){
echo App::getContainer()->get('config')->get('database.connections.mysql_one.driver').'<hr/>';
App::getContainer()->get('config')->set('database.connections.mysql_one.driver','mysql set');
echo App::getContainer()->get('config')->get('database.connections.mysql_one.driver');
});
```


- 前言
- 基礎篇
- 1. 第一步 創建框架目錄結構
- 2. 引入composer自動加載
- 3. php自動加載 (解釋篇)
- 4. 創建容器 注冊樹模式
- 5. 關于psr規范解釋
- 6. 關于"容器" "契約" "依賴注入" (解釋篇)
- 7. 添加函數文件helpers.php
- 8. 初始化請求(Request)
- 9. 響應 (Response)
- 10. 路由一 (路由組實現)
- 11. 路由二 (加入中間件)
- 12. 配置信息 (類似laravel)
- 13. 數據庫連接 (多例模式)
- 14. 查詢構造器 (query builder)
- MVC實現
- M 模型實現 (數據映射 + 原型 模式)
- C 控制器實現 + 控制器中間件
- V 視圖實現 (Laravel Blade 引擎)
- V 視圖切換成 ThinkPhp 模板 引擎)
- 其他輪子
- 日志
- 自定義異常 (異常托管)
- 單元測試 (phpunit)
- 替換成swoole的http服務器
- 協程上下文解決request問題
- qps測試
- 發布到packagist.org