在非 laravel 项目中使用 laravel 的特性 3: 数据库 database & Eloquent ORM
eloquent orm && illuminate database
composer 引入相关包
composer require illuminate/database
composer require doctrine/dbal
composer require illuminate/events
建立配置文件,并在项目的入口文件引入
例如 orm.php
, 入口文件 index.php 的地方就是 include "orm.php";
<?php
use Illuminate\Database\Capsule\Manager as Capsule;
use Illuminate\Events\Dispatcher;
use Illuminate\Container\Container;
// 自己配置
$admin = [
'driver' => 'mysql',
'host' => '127.0.0.1',
'database' => 'test',
'username' => 'root',
'password' => 'secret',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'port' => '3306',
'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();
使用 Query Builder index/orm.php
<?php
require_once __DIR__ . '/../vendor/autoload.php';
require_once __DIR__ . '/../orm.php';
use App\Eloquent\User;
use Illuminate\Database\Capsule\Manager as DB;
$users = DB::connection('default')->table('users')->where('id', '>', 1)->take(2)->get();
dd($users);
使用 Eloquent ORM
新建 Eloquent Model src/Eloquent/User.php
<?php
namespace App\Eloquent;
use Illuminate\Database\Eloquent\Model as Eloquent;
class User extends Eloquent
{
protected $table = 'users';
}
index/orm.php
<?php
require_once __DIR__ . '/../vendor/autoload.php';
require_once __DIR__ . '/../orm.php';
use App\Eloquent\User;
use Illuminate\Database\Capsule\Manager as DB;
$users = User::all();
dd($users);
命令行开启服务 php -S localhost:8000
并访问 http://localhost:8000/index/orm.php
即可。
项目目录结构
.
├── composer.json
├── composer.lock
├── config
├── helpers
│ └── laravel_helpers.php
├── index
│ ├── dd.php
│ ├── orm.php
│ └── validator.php
├── lang
│ └── zh_cn
│ └── validation.php
├── orm.php
└── src
├── Eloquent
│ └── User.php
└── Handlers
└── Validator.php
参考 致谢
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: