marcin-orlowski/lombok-php

编写更少的代码!

1.1.1 2023-10-10 18:45 UTC

This package is auto-updated.

Last update: 2024-08-30 01:17:58 UTC


README

Lombok PHP - write less code!

Latest Stable Version codecov License

目录

简介

Lombok PHP是一个提供不断增长的PHP属性(PHP 8.0中引入的特性)的包,旨在通过提供易于应用的标准功能来帮助减少项目中冗余代码。

主要目标是提供所有功能**在运行时**,无需任何中间步骤,且**无需代码生成**。

是的,项目名称是毫不掩饰地借鉴了Java中备受喜爱的Project Lombok。然而,它没有任何关联;它仅仅是向其范围和(目标)功能致敬。

优点

  • 编写和维护的代码更少,
  • 不再有重复的冗余代码,
  • 可以与其他属性共存(例如,Doctrine等),
  • 无需代码生成(所有操作都在线完成),
  • 无额外依赖,
  • 支持对象克隆,
  • 适用于生产。

示例

纯PHP

class Entity {
    protected int    $id;
    protected string $name;
    protected ?int   $age;

    public function getId(): int
    {
      return $this->id;
    }

    public function getName(): string
    {
        return $this->name;
    }
    public function setName(string $name): static
    {
        $this->name = $name;
        return $this;
    }

    public function getAge(): ?int
    {
        return $this->age;
    }
    public function setAge(?int $age): static
    {
        $this->age = $age;
        return $this;
    }
}

使用Lombok PHP(从\Lombok\Helper继承有帮助,但可选

use Lombok\Getter;
use Lombok\Setter;

#[Setter, Getter]
class Entity extends \Lombok\Helper {
    #[Getter]
    protected int $id;

    protected string $name;
    protected ?int $age;
}

点击此处查看设置说明和所有技术细节。

许可证

  • 由Marcin Orlowski编写并版权所有©2022-2023
  • Lombok PHP是开源软件,根据LGPL 3.0许可。