Skip to content
forked from ytake/Lom

Lombok style code generator for php

Notifications You must be signed in to change notification settings

MJKruszewski/Lom

 
 

Repository files navigation

Lom

for php code generator
Build Status SensioLabsInsight

install

$ composer require ytake/lom --dev  

usage

generate command

$ vendor/bin/lom generate [scan target dir] 

feature

@Data Annotation

use Ytake\Lom\Meta\Data;

/**
 * Class DataAnnotation
 * @Data
 */
class DataAnnotation
{

    /**
     * @var string $message
     */
    protected $message;

    /**
     * @var string $testing
     */
    protected $testing;

}

after

use Ytake\Lom\Meta\Data;

/**
 * Class DataAnnotation
 * @Data
 */
class DataAnnotation
{

    /**
     * @var string $message
     */
    protected $message;

    public function getMessage()
    {
        return $this->message; 
    }
    
    public function setMessage($message)
    {
        $this->message = $message; 
    }
}

@NoArgsConstructor Annotation

use Ytake\Lom\Meta\NoArgsConstructor;

/**
 * Class DataAnnotation
 * @NoArgsConstructor
 */
class DataAnnotation
{

    public function __construct($message)
    {
        $this->message = $message;
    }
}

after

use Ytake\Lom\Meta\NoArgsConstructor;

/**
 * Class DataAnnotation
 * @NoArgsConstructor
 */
class DataAnnotation
{

}

@AllArgsConstructor Annotation

use Ytake\Lom\Meta\AllArgsConstructor;

/**
 * Class DataAnnotation
 * @AllArgsConstructor
 */
class DataAnnotation
{

    protected $arg1;
    
    protected $arg2;
}

after

use Ytake\Lom\Meta\AllArgsConstructor;

/**
 * Class DataAnnotation
 * @AllArgsConstructor
 */
class DataAnnotation
{

    protected $arg1;
    
    protected $arg2;
    
    public function __construct($arg1, $arg2)
    {
        $this->arg1 = $arg1;
        $this->arg2 = $arg2;
    }
}

@Getter/@Setter Annotation

use Ytake\Lom\Meta\Getter;
use Ytake\Lom\Meta\Setter;

class GetterSetterAnnotation
{
    /**
     * @Getter @Setter
     * @var string $message
     */
    private $message;
    /**
     * @Getter @Setter
     * @var string $testing
     */
    private $testing;
}

@Value Annotation

/**
 * Class ValueAnnotation
 * @\Ytake\Lom\Meta\Value
 */
class ValueAnnotation
{
    /**
     * @var string $message
     */
    protected $message;

    /**
     * @var string $testing
     */
    protected $testing;

    /** @var string $hello */
    protected $hello;
}

About

Lombok style code generator for php

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%