marijnkoesen/code-generator-bundle

PHP 5.3 代码生成器

0.1.1 2014-03-05 09:21 UTC

This package is not auto-updated.

Last update: 2024-09-14 14:34:52 UTC


README

MarijnKoesenCodeGenerator 模块允许您为类生成 PHP 代码。

该项目基于php-code-generator 项目,并依赖于Symfony2 框架。如果您没有 Symfony2,可以查看可以独立安装的 php-code-generator 项目。

安装

使用 composer 包含该模块

  "require-dev": {
    "marijnkoesen/code-generator-bundle": "~0.1.0",
  }

然后更新您的 composer

$ composer update

app_kernel.php 中注册该模块

if (in_array($this->getEnvironment(), array('dev', 'test'))) {
    $bundles[] = new MarijnKoesen\CodeGeneratorBundle\MarijnKoesenCodeGeneratorBundle();
}

routing_dev.yml 中包含路由

MarijnKoesenCodeGeneratorBundle:
    resource: "@MarijnKoesenCodeGeneratorBundle/Resources/config/routing.yml"
    prefix:   /code-generator

安装资产

$ ./app/console assets:install

打开您的浏览器并访问 http://your-project/code-generator/ URL。

配置

您可以使用配置添加自己的模块,或禁用默认模块。

有关如何创建自己的模块的信息,请参阅以下内容。

marijn_koesen_code_generator:
    # Add your own custom modules 
    modules:
        My\NameSpace\CodeGenerators\MyCustomGenerator: true

    # Disable a default generator
    defaultModules:
        codegenerator\generator\MockGenerator: false

扩展代码生成器

如果您想从类定义中生成其他内容,可以轻松创建自己的代码生成器。

您可以扩展 AbstractGenerator 类,并轻松创建自己的实现。

以下是一个示例生成器

<?php
namespace MyNamespace;

use codegenerator\model\ClassEntity;
use codegenerator\model\ClassMember;

class MyGenerator extends AbstractGenerator
{
    public function generateCode(ClassEntity $class=null)
    {
        return 'class ' . $class->getName() . ' {}';
    }

    public function getName()
    {
        return 'Doctrine';
    }
} 

然后将其添加到您的 config_dev.yml

marijn_koesen_code_generator:
    modules:
        MyNamespace\MyGenerator: true

鸣谢

Marijn Koesen 开发和维护

许可证

此模块基于 MIT 许可证发布。请参阅模块中的完整许可证。

Resources/meta/LICENSE