isom / code-maker
CodeMakerBundle is a very simple and powerful coding system that will allow you to implement a completely custom coding strategy for your entities.
Installs: 245
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 1
Forks: 0
Open Issues: 0
Type:symfony-bundle
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: 2025-04-28 22:58:48 UTC
README
While developing management applications, we often face a lot of difficulties when implementing a dynamic coding system for our entities such as (customers, suppliers, invoices, products, ...). That's where CodeMaker will make your life mutch easier by offering you a very simple yet powerful coding system.
Installation
composer require isom/code-maker
- Enable the bundle in AppKernel.php
new SBC\CodeMakerBundle\CodeMakerBundle()
- Add this in
config/routing.yml
code_maker: resource: "@CodeMakerBundle/Controller/" type: annotation prefix: /code-maker
- Add this in
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'
- Run
php bin/console doctrine:schema:update --force
Usage
Now let's say that you have an entity called Product
and you want to generate a new custom string id every time when a new product is created, then you need to do the following things:
1. Step 1
Create your Product
entity and implement the CodeMaker
annotation
<?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
: a simple name that will be used by CodeMakerBundle's coding systemcodeColumn
: the field considered as unique identifier (it can be the identifier of the entity or another field)discriminatorColumn
: we will see them in a specific partdiscriminations
: we will see them in a specific part
2. Step 2
Now after the implementation of the CodeMaker
annotation the entity will be known by the coding system and all that remains is to create our famous Generator