IMO hoàn toàn hợp lệ để chuyển sang phương pháp tiếp cận OOP từng bước.
Cho câu hỏi của bạn:
Có, bạn có thể sử dụng độc lập Eloquent.
Đây là trang web đóng gói: https://packagist.org/packages/illuminate/database Thêm "illuminate/database": "5.0.*@dev"
vào số composer.json
và chạy composer update
. Bây giờ bạn sẽ cần khởi động Eloquent. (https://github.com/illuminate/database)
Sau đây là sao chép từ readme của repo:
Hướng dẫn Cách sử dụng
Đầu tiên, tạo một "Capsule" dụ người quản lý mới. Capsule nhằm mục đích cấu hình thư viện để sử dụng bên ngoài khung công tác Laravel dễ dàng nhất có thể.
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();
Khi phiên bản Capsule đã được đăng ký. Bạn có thể sử dụng nó như vậy:
Sử dụng Query Builder
$users = Capsule::table('users')->where('votes', '>', 100)->get();
phương pháp cốt lõi khác có thể được truy cập trực tiếp từ Capsule theo cách tương tự, kể từ DB mặt tiền:
$results = Capsule::select('select * from users where id = ?', array(1));
Sử dụng Trình tạo lược đồ
Capsule::schema()->create('users', function($table)
{
$table->increments('id');
$table->string('email')->unique();
$table->timestamps();
});
Sử dụng Eloquent ORM
class User extends Illuminate\Database\Eloquent\Model {}
$users = User::where('votes', '>', 1)->get();
Để biết thêm tài liệu về cách sử dụng các cơ sở dữ liệu khác nhau mà thư viện này cung cấp, hãy tham khảo tài liệu khuôn khổ Laravel.
cảm ơn câu trả lời chi tiết .. tôi muốn biết liệu chúng ta có thể tạo bí danh cho Capsule :: schema() được đặt thành Schema hay không, vì vậy nó có thể được sử dụng giống như trong Laravel tức là Schema :: Model-> action() hoặc Schema :: table() -> action()? – rolfk
Bạn có thể tạo một lớp 'Schema' và chuyển hướng tất cả các lời gọi phương thức tĩnh tới' Capsule :: schema() -> $ method' với '__callStatic'. –