Cách sử dụng Capsule để sử dụng Eloquent ORM mà không cần dùng Laravel Chuyên mục PHP và Laravel 2023-07-28 757 Lượt xem 73 Lượt thích 0 Bình luận

Nếu bạn yêu thích Laravel như một framework hay cụ thể hơn là ORM Eloquent giống như mình thì rất có thể bạn cũng muốn sử dụng ORM tuyệt vời này trong các ứng dụng PHP không phải của Laravel. Và tin tốt là nó dễ dàng hơn bạn nghĩ. Laravel cung cấp một gói độc lập gọi là Capsule mà bạn có thể sử dụng trong dự án của riêng mình. Đó là bộ công cụ cơ sở dữ liệu đầy đủ cho PHP, cung cấp trình tạo query builder, ORM kiểu ActiveRecord và schema builder. Nó hiện hỗ trợ MySQL, Postgres, SQL Server và SQLite.
Cài đặt Eloquent Capsule
Để sử dụng Eloquent, bạn chỉ cần cài đặt nó qua Composer vào dự án của mình bằng lệnh sau.
composer require "illuminate/database"
Cách sử dụng
Bây giờ, sau khi đã cài đặt, để thực sự sử dụng Eloquent, trước tiên bạn cần tạo một manager instance Capsule mới. Capsule nhằm mục đích làm cho việc configuring library để sử dụng bên ngoài framework Laravel dễ dàng nhất có thể. Đây là cách bạn có thể tạo cấu hình cơ sở dữ liệu.
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' => '',
]);
Thực hiện truy vấn
Khi phiên bản Capsule đã được đăng ký, bạn có thể sử dụng nó như thế này.
$users = Capsule::table('users')->where('votes', '>', 100)->get();
Các phương thức cốt lõi khác có thể được truy cập trực tiếp từ Capsule theo cách tương tự như từ DB Facade:
$results = Capsule::select('select * from users where id = ?', [1]);
Sử dụng Schema Builder
Bạn cũng có thể tạo các schemas bảng giống như bạn đã quen với Laravel.
Capsule::schema()->create('users', function ($table) {
$table->increments('id');
$table->string('email')->unique();
$table->timestamps();
});
Bạn thậm chí có thể sử dụng Eloquent trực tiếp bằng Illuminate\Database\Eloquent\Model bằng cách tạo các table models.
class User extends Illuminate\Database\Eloquent\Model {
// code goes here
}
$users = User::where('votes', '>', 1)->get();

Bình luận (0)