isom / code-maker
CodeMakerBundle 是一个非常简单且强大的编码系统,它将允许您为实体实现完全自定义的编码策略。
1.0.0
2018-12-16 17:11 UTC
Requires
- php: >=5.5.9
- doctrine/doctrine-bundle: *
- doctrine/orm: ^2.5
- symfony/framework-bundle: ^2.8 || ^3.4.12
- twig/twig: ^1.0||^2.0
This package is auto-updated.
Last update: 2024-09-28 21:45:32 UTC
README
在开发管理应用时,我们经常在为实体(如客户、供应商、发票、产品等)实现动态编码系统时遇到很多困难。这就是 CodeMaker 可以使您的生活变得更轻松的地方,因为它提供了一种非常简单但强大的编码系统。
安装
composer require isom/code-maker
- 在 AppKernel.php 中启用组件
new SBC\CodeMakerBundle\CodeMakerBundle()
- 在
config/routing.yml
中添加以下内容code_maker: resource: "@CodeMakerBundle/Controller/" type: annotation prefix: /code-maker
- 在
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'
- 运行
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