quantaforge / database
QuantaForge 数据库包。
v1.0.0
2023-10-14 14:41 UTC
Requires
- php: ^8.1
- ext-pdo: *
- brick/math: ^0.9.3|^0.10.2|^0.11
- quantaforge/collections: ^1.0.0
- quantaforge/container: ^1.0.0
- quantaforge/contracts: ^1.0.0
- quantaforge/macroable: ^1.0.0
- quantaforge/support: ^1.0.0
Suggests
- ext-filter: Required to use the Postgres database driver.
- doctrine/dbal: Required to rename columns and drop SQLite columns (^3.5.1).
- fakerphp/faker: Required to use the eloquent factory builder (^1.21).
- quantaforge/console: Required to use the database commands (^10.0).
- quantaforge/events: Required to use the observers with Eloquent (^10.0).
- quantaforge/filesystem: Required to use the migrations (^10.0).
- quantaforge/pagination: Required to paginate the result set (^10.0).
- symfony/finder: Required to use Eloquent model factories (^6.2).
README
QuantaForge 数据库组件是一个全功能的PHP数据库工具包,提供可表达的查询构建器、ActiveRecord风格的对象关系映射(ORM)和模式构建器。它目前支持MySQL、PostgreSQL、SQL Server和SQLite。它还作为QuantaForge PHP框架的数据库层。
使用说明
首先,创建一个新的"Capsule"管理实例。Capsule旨在使在QuantaForge框架之外配置库尽可能简单。
use QuantaForge\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 QuantaForge\Events\Dispatcher; use QuantaForge\Container\Container; $capsule->setEventDispatcher(new Dispatcher(new Container)); // Make this Capsule instance available globally via static methods... (optional) $capsule->setAsGlobal(); // Setup the Eloquent ORM... (optional; unless you've used setEventDispatcher()) $capsule->bootEloquent();
composer require "quantaforge/events"
当您需要使用Eloquent的观察者时需要。
Capsule实例注册后,您可以像这样使用它
使用查询构建器
$users = Capsule::table('users')->where('votes', '>', 100)->get();
其他核心方法可以像从DB外观一样直接从Capsule中访问
$results = Capsule::select('select * from users where id = ?', [1]);
使用模式构建器
Capsule::schema()->create('users', function ($table) { $table->increments('id'); $table->string('email')->unique(); $table->timestamps(); });
使用Eloquent ORM
class User extends QuantaForge\Database\Eloquent\Model {} $users = User::where('votes', '>', 1)->get();
有关使用此库提供的各种数据库设施的进一步文档,请参阅QuantaForge框架文档。