maduser/argon-eloquent
Composer 安装命令:
composer require maduser/argon-eloquent
包简介
Eloquent ORM integration for the Argon runtime stack.
README 文档
README
Eloquent ORM integration for the Argon runtime stack.
Installation
composer require maduser/argon-eloquent
Registration
Register the provider in your application composition layer:
use Maduser\Argon\Eloquent\Provider\EloquentServiceProvider; $container->register(EloquentServiceProvider::class);
The provider registers:
Illuminate\Container\ContainerIlluminate\Events\DispatcherIlluminate\Database\Capsule\ManagerIlluminate\Database\DatabaseManagerIlluminate\Database\ConnectionResolverInterfaceMaduser\Argon\Eloquent\EloquentConnectionRegistryMaduser\Argon\Eloquent\Config\EloquentConfig
Existing container definitions are not replaced.
Connections
Add database connections during service-provider registration:
use Maduser\Argon\Container\AbstractServiceProvider; use Maduser\Argon\Container\ArgonContainer; use Maduser\Argon\Eloquent\EloquentConnectionRegistry; final class DatabaseServiceProvider extends AbstractServiceProvider { #[\Override] public function register(ArgonContainer $container): void { $registry = $container->get(EloquentConnectionRegistry::class); $registry->add('default', [ 'driver' => 'sqlite', 'database' => dirname(__DIR__) . '/storage/database.sqlite', 'prefix' => '', ]); $registry->add('analytics', [ 'driver' => 'mysql', 'host' => '127.0.0.1', 'database' => 'analytics', 'username' => 'app', 'password' => '', 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'prefix' => '', ]); } }
The default connection name is default. Configure another default explicitly:
use Maduser\Argon\Eloquent\Config\EloquentParameter; $container->getParameters()->set(EloquentParameter::DEFAULT_CONNECTION, 'analytics');
Boot Behavior
The provider registers services during register() and boots Eloquent during boot().
That means connection providers should add connections in register(), before the application calls $container->boot(). This keeps the binding graph explicit and still allows Eloquent to perform its required runtime setup.
By default, model events are enabled and Capsule is not registered globally:
use Maduser\Argon\Eloquent\Config\EloquentParameter; $parameters = $container->getParameters(); $parameters->set(EloquentParameter::BOOT_EVENTS, true); $parameters->set(EloquentParameter::GLOBAL, false);
EloquentParameter::GLOBAL calls Capsule's setAsGlobal() during boot. Leave it disabled unless the application explicitly needs Capsule's static API.
Usage
Inject Illuminate's own database services:
use Illuminate\Database\DatabaseManager; final readonly class UserRepository { public function __construct( private DatabaseManager $database, ) { } public function count(): int { return $this->database->connection()->table('users')->count(); } }
Eloquent models work after container boot:
use Illuminate\Database\Eloquent\Model; final class User extends Model { protected $table = 'users'; }
Boundaries
This package only wires Eloquent into Argon. It does not provide migrations, model discovery, database config loading, transactions helpers, repositories, or an Argon ORM abstraction.
Quality Gates
composer check composer test:coverage composer psalm composer phpcs
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-05-25