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

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

lengbin/php-generator
=====================

php php-generator

02.2k2PHP

Since Jun 11Pushed 3y ago1 watchersCompare

[ Source](https://github.com/ice-leng/php-generator)[ Packagist](https://packagist.org/packages/lengbin/php-generator)[ RSS](/packages/lengbin-php-generator/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependenciesVersions (1)Used By (2)

php-generator
=============

[](#php-generator)

> 生成php文件

支持php版本
=======

[](#支持php版本)

- php7.2
- php7.4
- php8

安装
==

[](#安装)

---

The preferred way to install this extension is through [composer](http://getcomposer.org/download/).

Either run

```
composer require lengbin/php-generator

```

or add

```
"lengbin/php-generator": "*"

```

to the required section of your `composer.json` file.

使用
==

[](#使用)

---

GenerateClass
-------------

[](#generateclass)

---

```
    $generateClass = new GenerateClass();
    $generateClass->setNamespace('App\Controller')
        ->setClassname('CalculateController')
        ->setStrictTypes()
        ->addUse('App\Common\BaseController')
        ->setComments([
            'Class CalculateController',
            '@package App\Controller',
        ])->setInheritance('BaseController')
        ->setAbstract(true)
        ->addMethod((new Method())->setFinal()
            ->setName('add')
            ->setPrivate(true)
            ->setContent('        return $a + $b;')
            ->setReturn('int')
            ->addParams((new Params())
                ->setName('a')
                ->setType('int')
                ->setDefault(1)
                ->setComment('左边参数')
            )
            ->addParams((new Params())
                ->setName('b')
                ->setType('int')
                ->setDefault(2)
                ->setComment('右边参数')
            )->addComment('加法'))
        ->addMethod((new Method())
            ->setName('subtraction')
            ->setProtected(true)
            ->setContent('        return $a - $b;')
            ->setReturn('int')
            ->addParams((new Params())
                ->setName('a')
                ->setType('int')
                ->setDefault(1)
                ->setComment('左边参数')
            )
            ->addParams((new Params())
                ->setName('b')
                ->setType('int')
                ->setDefault(2)
                ->setComment('右边参数')
            )->addComment('减法'))
        ->addMethod((new Method())
            ->setName('abstractFunction')
            ->setAbstract(true)
            ->setReturn('int')
            ->addParams((new Params())
                ->setName('a')
                ->setType('int')
                ->setDefault(1)
                ->setComment('左边参数')
            )
            ->addParams((new Params())
                ->setName('b')
                ->setType('int')
                ->setDefault(2)
                ->setComment('右边参数')
            )->addComment('abstract'));
        echo $generateClass;
```

或者

```
    $generateClass = new GenerateClass([
        'namespace'   => 'App\Controller',
        'classname'   => 'CalculateController',
        'strictTypes' => true,
        'uses'        => [
            'App\Common\BaseController',
        ],
        'comments'    => [
            'Class CalculateController',
            '@package App\Controller',
        ],
        'inheritance' => 'BaseController',
        'abstract'    => true,
        'methods'     => [
            [
                'name'     => 'add',
                'private'  => true,
                'content'  => '        return $a + $b;',
                'return'   => 'int',
                'comments' => ['加法'],
                'params'   => [
                    ['name' => 'a', 'type' => 'int', 'default' => 1, 'comment' => '左边参数'],
                    ['name' => 'b', 'type' => 'int', 'default' => 2, 'comment' => '右边参数'],
                ],
            ],
            [
                'name'      => 'subtraction',
                'protected' => true,
                'content'   => '        return $a - $b;',
                'return'    => 'int',
                'comments'  => ['减法'],
                'params'    => [
                    ['name' => 'a', 'type' => 'int', 'default' => 3, 'comment' => '左边参数'],
                    ['name' => 'b', 'type' => 'int', 'default' => 2, 'comment' => '右边参数'],
                ],
            ],
            [
                'name'     => 'abstractFunction',
                'abstract' => true,
                'return'   => 'int',
                'comments' => ['abstract'],
                'params'   => [
                    ['name' => 'a', 'type' => 'int', 'default' => 1, 'comment' => '左边参数'],
                    ['name' => 'b', 'type' => 'int', 'default' => 2, 'comment' => '右边参数'],
                ],
            ],
        ],
    ]);
    echo $generateClass;
```

得到

```
