Slim Framework + illuminate Database


將設定檔案大約記錄一下

檔案: composer.json

1
2
3
4
5
6
7
8
9
{
"require": {
"php": ">=5.4",
"slim/slim": "2.4.*",
"illuminate/database": "4.2.6",
"pimple/pimple": "2.1.0",
"davedevelopment/phpmig": "dev-master",
}
}

指令: 安裝/更新現有的套件

1
php ./composer.phar update

檔案: index.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
require VENDOR_ROOT.'/autoload.php';

use Slim\Slim;
use Illuminate\Database;

$db = new Database\Capsule\Manager();
$db->addConnection([
'driver' => 'sqlite',
'host' => '',
'username' => '',
'password' => '',
'database' => './db/default.sqlite',
'charset' => 'utf8',
'collation' => 'utf8_general_ci',
'prefix' => 'hws_',
]);
$db->setAsGlobal();
$db->bootEloquent();

$slim = new Slim();
$slim->run();

檔案: phpmig.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
require VENDOR_ROOT.'/autoload.php';

use Phpmig\Adapter;
use Pimple;

$db = new Database\Capsule\Manager();
$db->addConnection([
'driver' => 'sqlite',
'host' => '',
'username' => '',
'password' => '',
'database' => './db/default.sqlite',
'charset' => 'utf8',
'collation' => 'utf8_general_ci',
'prefix' => 'hws_',
]);
$db->setAsGlobal();
$db->bootEloquent();

$container = new Pimple();
$container['phpmig.adapter'] = function() use ($db) {
return new Adapter\Illuminate\Database($db, 'migrations');
};
$container['phpmig.migrations_path'] = __DIR__ . DIRECTORY_SEPARATOR . 'migrations';

return $container;

指令: 初始化 Migration 環境

1
./vendor/bin/phpmig init

指令: 建立一個 Migration

1
./vendor/bin/phpmig generate "create user table"

指令: 合併 Migration 到資料庫

1
2
./vendor/bin/phpmig migrate
./vendor/bin/phpmig migrate -t 20140721184400

指令: 還原 Migration 到資料庫

1
2
./vendor/bin/phpmig rollback
./vendor/bin/phpmig rollback -t 20140721184400