triun/laravel-model-base

为 Laravel 生成 Eloquent 模型基类


README

Latest Stable Version Latest Version on Packagist Pre Release Version on Packagist Latest Unstable Version Build Status Total Downloads Software License

为 Laravel 生成 Eloquent 模型基类。

关于

Laravel-Model-Base 是一个 Laravel 命令,用于在创建新模型时执行重复性任务,并将其保存到抽象模型基类中,这样您就可以随时更新它,而无需担心覆盖模型中的手动更改。

模型基类的主要目标是基于数据库表结构生成 Eloquent 配置,这意味着它不能实现任何业务逻辑,或任何其他非来自数据库本身的逻辑。如果您想添加额外的属性、方法、接口或特性,可以在模型本身中实现。

此生成器可以通过配置参数进行定制,但也可以通过 修饰符 进行扩展。

还可以选择性地生成模型,但在此情况下,它永远不会被此工具覆盖。

安装

使用以下命令通过 composer 安装此包

composer require --dev triun/laravel-model-base

更新 composer 后,将服务提供者添加到 config/app.php 中的 providers 数组

Triun\ModelBase\ModelBaseServiceProvider::class,

仅开发安装

要仅在开发系统上安装此包,请在 composer 命令中添加 --dev 标志

composer require --dev triun/laravel-model-base:dev-master

而不是在 config/app.php 文件中添加服务提供者,您应该在 app/Providers/AppServiceProvider.php 文件中 register() 方法内添加以下代码

public function register()
{
    if ($this->app->environment() !== 'production') {
        $this->app->register(\Triun\ModelBase\ModelBaseServiceProvider::class);
    }
    // ...
}

这将允许您的应用程序在非生产环境中加载 Laravel 模型基类。

使用方法

创建一个模型基类

php artisan make:mode-base table_name [--connection connection_name]

批量创建

php artisan make:mode-base-bulk [--connection connection_name]

注意:如果您没有在配置文件中设置连接(model-base.bulk.connections),则它将尝试运行数据库配置文件(database.connections)中所有可用的连接。

自定义

您可以使用以下命令将配置文件发布到您的应用程序中

php artisan vendor:publish --provider="Triun\ModelBase\ModelBaseServiceProvider" --tag=config

Lumen

如果您正在使用 Lumen,可能需要执行一些手动步骤...

将配置文件复制到您的 config 目录

cp vendor/triun/laravel-model-base/config/model-base.php config/

您还可能需要在 bootstrap/app.php 文件中取消以下行的注释

<?php
# bootstrap/app.php

$app = new Laravel\Lumen\Application(
    realpath(__DIR__.'/../')
);

$app->withFacades(true, [
    Illuminate\Support\Facades\App::class => 'App',
    Illuminate\Support\Facades\File::class => 'File',
]);
$app->withEloquent();
$app->register(App\Providers\AppServiceProvider::class);

这样我们就可以使用 Facades 和 Eloquent,以及向 AppServiceProvider 添加一些内容

<?php
namespace App\Providers;

use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    public function register()
    {
        $this->app->instance('path.config', app()->basePath() . DIRECTORY_SEPARATOR . 'config');
        
        if ($this->app->environment() !== 'production') {
            $this->app->configure('model-base');
            $this->app->register(\Triun\ModelBase\ModelBaseServiceProvider::class);
        }
    }
}

// TODO

除了配置文件外,您还可以添加或创建自己的 修饰符

修饰符

如果您想向生成器添加行为,可以使用骨架修饰符来实现。

修饰符包

以下是一些修饰符包

// TODO

添加修饰符

如果您已经有了任何修饰符包,您可以通过在 config/model-base.php 文件中的 'modifiers' 数组中添加它来加载它。

// TODO

创建自己的修饰符

如何创建一个修饰符。

// TODO

文档

Laravel-Model-Base 的文档可在 Github wiki 上找到。

问题

可以在 Github Issue Tracker 上提交错误报告和功能请求。

贡献

请参阅CONTRIBUTING.md获取信息。

许可证

Laravel Model Base 是开源软件,遵循MIT 许可协议