SQLite 不只可以用在測試,也可以用來開發專案

有很多方式可以建立 Laravel 開發環境,如 MAMP、Homestead,但事實上我最近最常使用的是 PHP 內建 HTTP server 與 SQLite,這是最簡單,也是最省電的開發環境。

Version


Laravel 5.2.29
PhpStorm 2016.1

建立 Laravel 專案


1
oomusou@mac:~$ composer create-project laravel/laravel Laravel52SQLite_demo --prefer-dist

建立 SQLite 資料庫


1
oomusou@mac:~/MyProject$ cd database
oomusou@mac:~/MyProject/database$ touch database.sqlite

database 目錄下,建立空的 database.sqlite 資料庫。

修改 .env


.env1 1GitHub Commit : 修改 .env

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
APP_ENV=local
APP_DEBUG=true
APP_KEY=base64:Hv/GYT3Mz3PFWgj4cDnhGhHnkByhuNKUT9NKbGRIfu4=
APP_URL=http://localhost

DB_CONNECTION=sqlite
DB_HOST=127.0.0.1
DB_PORT=3306
#DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

第 6 行

1
DB_CONNECTION=sqlite

將資料庫連線改成 sqlite

第 9 行

1
#DB_DATABASE=homestead

DB_DATABASE 前面加加上 #,將這行註解掉。

執行 Migration

1
oomusou@mac:~/MyProject$ php artisan migrate

若能成功 migration,表示 Laravel 已經抓到 SQLite,並將資料順利 migrate 進 database.sqlite

使用 PhpStorm 管理 SQLite


很多人猶豫該用什麼 GUI 工具管理 SQLite,其實 PhpStorm 已經內建 SQLite 管理工具。

按下右側的 Database,再按下上方的 +,選擇 Data Source form Path

選擇剛剛建立的 database.sqlite

選擇 Sqlite (Xerial)

若 PhpStorm 還沒安裝過 SQLite driver,會顯示 Download missing files1 1SQLite driver 只要安裝一次即可,以後其他專案都不需再安裝。

Download 下載 SQLite driver。

Test Connection 測試 SQLite 連線。

連線成功。

PhpStorm 的 Database 可以順利顯示預設的 users table。

使用 PHP 內建的 HTTP Server


1
oomusou@mac:~/MyProject$ php artisan serve

執行 PHP 內建的 Http server。

成功執行 Laravel 在 http://localhost:8000/

Conclusion


  • PhpStorm 內建支援 SQLite,要管理 SQLite 不用再找其他 GUI 管理工具。
  • 使用 SQLite + php artisan serve方式,不需安裝 MAMP 或 Homestead,只要有安裝 PHP 即可開發 Laravel。

Sample Code


完整的範例可以在我的 GitHub 上找到。