定制 maduser/argon-eloquent 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

maduser/argon-eloquent

Composer 安装命令:

composer require maduser/argon-eloquent

包简介

Eloquent ORM integration for the Argon runtime stack.

README 文档

README

PHP Build codecov Psalm Level Latest Version Total Downloads License: MIT

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\Container
  • Illuminate\Events\Dispatcher
  • Illuminate\Database\Capsule\Manager
  • Illuminate\Database\DatabaseManager
  • Illuminate\Database\ConnectionResolverInterface
  • Maduser\Argon\Eloquent\EloquentConnectionRegistry
  • Maduser\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

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-05-25

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固