PHPackages                             clive0417/model-generator - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. clive0417/model-generator

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

clive0417/model-generator
=========================

A model generator

01PHP

Since Sep 18Pushed 3y ago1 watchersCompare

[ Source](https://github.com/clive0417/model-generator)[ Packagist](https://packagist.org/packages/clive0417/model-generator)[ RSS](/packages/clive0417-model-generator/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Model Generator
===============

[](#model-generator)

Package description: 雖然有一些現成的套件可以使用，但各公司對於 model 的規範不同。故最好的方法還是客制一個符合自己需求的套件 此套件尚在開發階段，目前僅支援 MySQL ，還有一些 Config 的設定尚未完整。

Installation
------------

[](#installation)

Install via composer

```
composer require clive0417/model-generator
```

### Publish package assets

[](#publish-package-assets)

```
php artisan vendor:publish --provider="Clive0417\ModelGenerator\ServiceProvider"
```

Usage
-----

[](#usage)

### Step1 變更 config 檔，檔案路徑為自己公司或自己專案規範

[](#step1-變更-config-檔檔案路徑為自己公司或自己專案規範)

```
return [
    /*TODO step1 請替換為自己專案規則下 model 路徑 */
    'entity_root_path' => base_path().'/App//Models/',
    'entity_namespace_root_path' => 'App\\Models\\'
];
```

### Step2 在EntityCreatorModelFormat 檔設定自己專案規則 哪些 table ，繼承制各自不同的Class

[](#step2-在entitycreatormodelformat-檔設定自己專案規則-哪些-table-繼承制各自不同的class)

```
    public static function getExtendFrom($table_name)
    {
        /*TODO  step.2 請設定好自己專案規則 model 從哪一個 class 下繼承 */
        switch (true) {
            case in_array($table_name, ['members', 'managers', 'iams', 'admins']): // 會員,管理員
                return 'User';
            default:
                return 'Model';
        }
    }
```

### Step3 在EntityCreatorModelFormat 檔設定自己 model 檔會使用到的 class 的路徑

[](#step3-在entitycreatormodelformat-檔設定自己-model-檔會使用到的-class-的路徑)

```
    public static function getUsePath($use_name)
    {
        /*TODO step.3 請設定好所有會引入的相關檔案路徑*/
        switch ($use_name) {
            case 'Model':
            case 'SoftDeletes':
                return 'Illuminate\Database\Eloquent';
            case 'User':
                return 'Illuminate\Foundation\Auth\User';
            case 'Carbon':
                return 'Carbon';
            default:
                return '';
        }
    }
```

### Step4 在ModelGenerateCommand 檔Command 寫好自己專案特定欄位，需要 引入 trait or 填hidden ....

[](#step4-在modelgeneratecommand-檔command-寫好自己專案特定欄位需要-引入-trait-or-填hidden-)

```
            //對column 跑 foreach。
            foreach ($table->getColumns() as $column_name => $Column) {

                //特殊欄位判斷 switch()
                // TODO step 4 設定各欄位 需添加的 trait/use...
                switch ($Column->getName()) {
                    case 'deleted_at':
                        $EntityCreator->addTrait(new TraitModel('SoftDeletes'));
                        $EntityCreator->addUse(new UseModel('SoftDeletes'));
                        $HiddenModel->addHidden($Column->getName());
                        break;
                    default:
                        $FillableModel->addFillable($Column->getName());
                        //判斷欄位 type dates /timestamp 就加進入此
                        if (in_array($Column->getName(), EntityCreatorSupport::getDateTimeTypeList())) {
                            $DatesModel->addDates($Column->getName());
                            $has_carbon_column = true;
                        }
                        // setter & getter
                        $EntityCreator->addSetterGetter(new SetterGetterModel($Column));
                        break;
                }
            }
```

### Step5 Console 執行指令，便會自動讀取DB產生model 檔案

[](#step5-console-執行指令便會自動讀取db產生model-檔案)

```
php artisan clive0417:model_generate
```

Security
--------

[](#security)

If you discover any security related issues, please email instead of using the issue tracker.

Credits
-------

[](#credits)

- clive0417

This package is bootstrapped with the help of [melihovv/laravel-package-generator](https://github.com/melihovv/laravel-package-generator).

###  Health Score

13

—

LowBetter than 1% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity1

Limited adoption so far

Community4

Small or concentrated contributor base

Maturity25

Early-stage or recently created project

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/14b28fb54485dd791a77d0eacaf28b037e2ab88a17659d1803348b8cf1d66206?d=identicon)[clive0417](/maintainers/clive0417)

### Embed Badge

![Health badge](/badges/clive0417-model-generator/health.svg)

```
[![Health](https://phpackages.com/badges/clive0417-model-generator/health.svg)](https://phpackages.com/packages/clive0417-model-generator)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
