2014-09-28 54 views
22

一段時間以來,我一直在尋找使用php框架來工作。直到最近,我一直在寫程序風格,並且仍在努力尋找圍繞着oop世界/風格的方法。 我認爲一個php框架可以幫助我編寫更好的代碼,我很確定我會在不久的將來向Laravel項目傾斜。我可以單獨使用Laravel的數據庫層嗎?

現在我需要一個數據庫層,可以在我現有的代碼中使用。我現在使用mysqli和準備好的語句,因爲我很容易實現(以前使用MySQL)。

我一直在尋找http://medoo.in爲「易」的方式來使用PDO包裝/類,但缺乏支持頁面上的活動,而我的工作在未來使用Laravel,取得了事實我想知道現在是否可以使用Laravel數據庫圖層來存儲我現有的代碼。

會這樣做,這將是有意義還是我誤解和混合代碼造型的概念?

回答

31

IMO它是一步一步地過渡到OOP方法絕對有效。

你的問題:

是的,你可以使用雄辯單機。

這裏是packagist網站:https://packagist.org/packages/illuminate/database 添加"illuminate/database": "5.0.*@dev"composer.json和運行composer update。 現在你需要引導雄辯。 (https://github.com/illuminate/database

以下是從回購的自述複製:

使用說明

首先,創建一個新的「膠囊」管理器實例。 Capsule旨在儘可能簡化在Laravel框架之外配置庫的使用。

use Illuminate\Database\Capsule\Manager as Capsule; 

$capsule = new Capsule; 

$capsule->addConnection([ 
    'driver' => 'mysql', 
    'host'  => 'localhost', 
    'database' => 'database', 
    'username' => 'root', 
    'password' => 'password', 
    'charset' => 'utf8', 
    'collation' => 'utf8_unicode_ci', 
    'prefix' => '', 
]); 

// Set the event dispatcher used by Eloquent models... (optional) 
use Illuminate\Events\Dispatcher; 
use Illuminate\Container\Container; 
$capsule->setEventDispatcher(new Dispatcher(new Container)); 

// Set the cache manager instance used by connections... (optional) 
$capsule->setCacheManager(...); 

// Make this Capsule instance available globally via static methods... (optional) 
$capsule->setAsGlobal(); 

// Setup the Eloquent ORM... (optional; unless you've used setEventDispatcher()) 
$capsule->bootEloquent(); 

一旦Capsule實例已被註冊。你可以使用它像這樣:

使用查詢生成器

$users = Capsule::table('users')->where('votes', '>', 100)->get(); 

其他核心方法可以直接從膠囊中的相同方式從DB門面訪問:

$results = Capsule::select('select * from users where id = ?', array(1)); 

使用架構生成器

Capsule::schema()->create('users', function($table) 
{ 
    $table->increments('id'); 
    $table->string('email')->unique(); 
    $table->timestamps(); 
}); 

使用雄辯ORM

class User extends Illuminate\Database\Eloquent\Model {} 

$users = User::where('votes', '>', 1)->get(); 

有關使用此庫提供的各種數據庫工具的更多文檔,請參閱Laravel框架文檔。

+0

感謝詳細的答覆..我想知道,如果我們能夠創建)設置爲架構的別名膠囊::架構(,因此它可以使用同樣的方法,Laravel即模式::型號 - >行動()或Schema :: table() - > action()? – rolfk 2015-04-08 09:24:52

+0

您可以創建一個Schema類並使用__callStatic將所有靜態方法調用重定向到Capsule :: schema() - > $ method'。 – 2015-07-21 08:31:24

相關問題