PHPackages                             daijulong/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. daijulong/generator

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

daijulong/generator
===================

A universal PHP code generator

1.0.2(7y ago)3351PHP

Since Aug 7Pushed 7y ago1 watchersCompare

[ Source](https://github.com/daijulong/generator)[ Packagist](https://packagist.org/packages/daijulong/generator)[ RSS](/packages/daijulong-generator/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependencies (1)Versions (4)Used By (0)

Generator
=========

[](#generator)

适用于PHP项目的代码生成工具

环境要求
----

[](#环境要求)

- php: &gt;= 5.4

安装
--

[](#安装)

通过 Composer

```
$  composer require daijulong/generator
```

composer.json

```
"daijulong/generator": "^1.0"
```

重要：安装好后须进行资源发布

```
./vendor/bin/generator publish
```

> 执行发布命令后将在当前工作目录生成 generator ， generator.json ，resources/stubs 等文件资源

使用
--

[](#使用)

```
php generator
```

将显示使用手册

### 命令手册

[](#命令手册)

显示 `make` 命令的使用手册

```
php generator make -h
```

> 所有支持的命令，加上 `-h` 选项即显示该命令的使用手册

### 生成文件示例

[](#生成文件示例)

> 以下内容以默认发布的资源（配置）为依据演示，命令相关说明请依照命令行手册

示例：生成的资源名称为： Admin/UserAuth

```
php generator make Admin/UserAuth
```

将会依次生成以下文件：

1. app/Http/Controllers/Admin/UserAuthController.php
2. app/Models/Admin/UserAuth.php
3. resources/views/admin/user\_auth/index.php
4. resources/views/admin/user\_auth/create.php
5. resources/views/admin/user\_auth/edit.php
6. resources/views/admin/user\_auth/show.php

> 上述文件生成规则皆由配置文件 `generator.json` 中定义的规则来决定

> 资源名称建议以类名为准，遵循 psr-4 规范

配置
--

[](#配置)

配置文件为 `generator.json` ，生成规则在此定义

### resources-path

[](#resources-path)

定义资源目录名称，默认为 resources ，内含模板目录 stubs

### modules

[](#modules)

定义 `make` 命令中所支持的模块的默认设置，如 controller 模块的定义：

```
{
  ...
  "modules": {
    ...
    "contorller": {
      "confirm": false,
      "confirm-default": "yes",
      "override": "ask",
      "stub": "controller",
      "save-path": "app/Http/Controllers/{space}",
      "save-file": "{class}.php",
      "class-prefix": "",
      "class-postfix": "Controller",
      "namespace": "App\\Http\\Controllers",
      "ask": {}
    },
    ...
  },
  ...
}

```

模块字段说明：

confirm ： true 或 false ，生成该模块文件前是否需要确认

confirm-default ： 确认默认值，yes 或 no

override ： 如果文件已经存在，是否覆盖，默认 ask 为询问，也可指定为 true 或 false 来决定是否直接覆盖

stub ： 模板文件，在 resources/stubs 目录下的文件，并以 “.stub” 为后缀

save-path ： 生成文件保存路径，支持占位符，建议仅声明路径部分，包括资源名中可能包含的路径部分

save-file ： 生成文件的文件名（包括后缀），支持占位符，建议仅声明文件名本身

class-prefix ： 资源名作为类时，类名的前缀

class-postfix ： 资源名作为类时，类名的后缀

namespace ： 资源名作为类时，命名空间前缀

ask ： 其他附加数据，通过询问方式获取值

ask 示例：

```
{
  "table_name" : "表名是什么？",     直接提问
  "is_man" : {
    'question' => '你是帅锅？',      问题
    'type' => 'confirm',            答案类型，confirm 为确认型，回答 yes 或 no ，其他为文字型
    'default' => '',                默认答案
    'must' => false,                是否必须回答
  },
}

```

> ask 所得数据可以在模板中以占位符替代

### groups

[](#groups)

对于不同的组合要求，可以定义不同的组，并在 `make` 命令中指定要适用的组配置，如使用 `default` 组的配置 ：

```
php generator make Admin/UserAuth -g=default
```

示例配置：

```
{
  ...
  "groups": {
    "default": {
      "make": [
        "controller",
        "model",
        "view-index",
        "view-create",
        "view-edit",
        "view-show"
      ],
      "controller": {
        "module": "controller"
      },
      "model": {
        "module": "model"
      },
      "view-index": {
        "module": "view",
        "stub": "views/index"
      },
      "view-create": {
        "module": "view",
        "stub": "views/create"
      },
      "view-edit": {
        "module": "view",
        "stub": "views/edit"
      },
      "view-show": {
        "module": "view",
        "stub": "views/show"
      }
    }
  },
  ...
}

```

> 每个组中必须有 `make` 选项，此定义了 `make` 命令所要生成的模块 并且每个模块都需要在后续进行声明配置 每个模块的配置与 `modules` 中相关内容完全相同，如果该模块仅是对 `modules` 中某模块的配置进行微调，则可以以 `module` 选项指定默认模块配置并对需要修改的选项进行配置

占位符
---

[](#占位符)

在前述内容中提到的占位符，在此集中说明

> 与资源名称有关的，以 Admin/UserAuth 为例, 模块配置以默认组的 controller 模块为例

### 配置中的占位符

[](#配置中的占位符)

#### save-path 和 save-file

[](#save-path-和-save-file)

```
{name}   ： 原始资源名称               UserAuth

{NAME}   ： 大写的资源名称              USER_AUTH

{_name_} ： 小写的资源名称              user_auth

{space}  ： 资源名称中路径部分          Admin

{_space_}： 小写资源名称中路径部分      admin

{class}  ： 资源类名，注意前后缀        UserAuthController

{stub}   ： 模板文件名，不含路径和后缀   controller

```

时间相关：{Y} {y} {m} {d} {H} {i} {s}，对应 `date()` 函数中的格式

### 模板中的占位符

[](#模板中的占位符)

```
DummyNamespace     ： 命名空间            Admin
DummyFullNamespace ： 完整的命名空间       App\Http\Controllers\Admin
DummyClass         ： 类名                UserAuthController
DummyName          ： 原始资源名称        UserAuth
DummyCamelName     ： 驼峰命名的资源名称   UserAuth
DummyLowerName     ： 小写的资源名称      user_auth
DummyUpperName     ： 大写的资源名称      USER_AUTH

```

另外，还有前述 ask 配置的问题答案，可以用 `Dummy-问题名` 来表示，如 `Dummy-table_name` ，`Dummy-is_man`

License
=======

[](#license)

The MIT License (MIT). Please see [License File](LICENSE) for more information.

###  Health Score

29

—

LowBetter than 60% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity12

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity64

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

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.

###  Release Activity

Cadence

Every ~63 days

Total

3

Last Release

2710d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/a269645782557daab88eb3bcc2769c59952446bbba11d609065818f0c0a79de1?d=identicon)[daijulong](/maintainers/daijulong)

---

Top Contributors

[![daijulong](https://avatars.githubusercontent.com/u/2356884?v=4)](https://github.com/daijulong "daijulong (7 commits)")

### Embed Badge

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

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

###  Alternatives

[swooinc/nova-countdown

A countdown card for Laravel Nova.

1224.5k](/packages/swooinc-nova-countdown)[hao-li/laravel-amount

183.0k](/packages/hao-li-laravel-amount)

PHPackages © 2026

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