在非laravel項目中引入Illuminate\Database

 1、在composer.json加上對應的包,composer update

{
  "require": {
    "illuminate/database": "^6.18",
    "doctrine/dbal": "^2.10",
    "illuminate/events": "^6.18"
  },
  "repositories": {
    "packagist": {
      "type": "composer",
      "url": "https://mirrors.aliyun.com/composer/"
    }
  }
}

2、建立配置文件在項目的入口文件引入,我是叫orm.php,我在入口文件index.php的地方就是

include "orm.php";

use Illuminate\Database\Capsule\Manager as Capsule;
use Illuminate\Events\Dispatcher;
use Illuminate\Container\Container;
$admin = [
    'driver'    => 'mysql',
    'host'      => '',
    'database'  => '',
    'username'  => 'root',
    'password'  => '',
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => '',
];
$sdk = [
    'driver'    => 'mysql',
    'host'      => '',
    'database'  => '',
    'username'  => 'root',
    'password'  => '',
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => '',
];

$capsule = new Capsule;
// 創建鏈接(多庫配置)
$capsule->addConnection($admin,'default');   
$capsule->addConnection($sdk,'sdk');
// 數據庫查詢事件
$capsule->setEventDispatcher(new Dispatcher(new Container));

// 設置全局靜態可訪問
$capsule->setAsGlobal();

Capsule::connection('default')->listen(function ($query) {
    //這裏是執行sql後的監聽回調方法
    $sql = vsprintf(str_replace("?", "'%s'", $query->sql), $query->bindings) . " [" . $query->time . ' ms] ';
    // 把SQL寫入到日誌文件中
    Debug::log($sql, 'info');
});
// 啓動Eloquent
$capsule->bootEloquent();

3、在使用到的地方

引入類

use Illuminate\Database\Capsule\Manager as DB;

sql操作

 $items = DB::connection('sdk')->table('user')->where('id', '>', '1')->get();

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章