isom/code-maker

CodeMakerBundle 是一个非常简单且强大的编码系统,它将允许您为实体实现完全自定义的编码策略。

安装: 242

依赖项: 0

建议者: 0

安全: 0

星标: 2

关注者: 1

分支: 0

开放问题: 0

类型:symfony-bundle

1.0.0 2018-12-16 17:11 UTC

This package is auto-updated.

Last update: 2024-09-28 21:45:32 UTC


README

在开发管理应用时,我们经常在为实体(如客户、供应商、发票、产品等)实现动态编码系统时遇到很多困难。这就是 CodeMaker 可以使您的生活变得更轻松的地方,因为它提供了一种非常简单但强大的编码系统。

安装

  1. composer require isom/code-maker
  2. 在 AppKernel.php 中启用组件 new SBC\CodeMakerBundle\CodeMakerBundle()
  3. config/routing.yml 中添加以下内容
    code_maker:
        resource: "@CodeMakerBundle/Controller/"
        type: annotation
        prefix: /code-maker
  4. config/config.yml 中添加以下内容
    # Code maker Configuration
    code_maker:
        auto_update_id: true
        respect_pattern: true
        cm_form_template: 'native' #by default native|material|altair
        cm_base_layout: '@your-base-layout.html.twig'
  5. 运行 php bin/console doctrine:schema:update --force

用法

现在假设您有一个名为 Product 的实体,并且每次创建新产品时都希望生成一个新的自定义字符串 ID,那么您需要做以下事情

1. 第一步

创建您的 Product 实体并实现 CodeMaker 注解

<?php
namespace YourBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use SBC\CodeMakerBundle\Annotation\CodeMaker;
/**
 * Product
 *
 * @ORM\Table(name="Product")
 * @ORM\Entity(repositoryClass="YourBundle\Repository\ProductRepository")
 * 
 * @CodeMaker(  
 *     displayName="Products",  
 *     codeColumn="id"  
 * )
 */
class Product
{
	/**  
	 * @var string 
	 * @ORM\Id 
	 * @ORM\Column(name="id", type="string", length=255) 
	 */
	private $id;
	
	/**  
	 * @var string 
	 * @ORM\Column(name="field;", type="string", length=255) 
	 */
	private $field;

	/**
	 *
	 *
	 * Getters and setters
	 */
}
  • displayName:CodeMakerBundle 编码系统将使用的简单名称
  • codeColumn:作为唯一标识符的字段(可以是实体的标识符或另一个字段)
  • discriminatorColumn:我们将在特定部分看到它们
  • discriminations:我们将在特定部分看到它们

2. 第二步

现在在实现 CodeMaker 注解后,实体将由编码系统所知,剩下要做的就是创建我们的著名 Generator

2.1. 通过控制台模式创建生成器

2.2. 通过图形界面模式创建生成器