Skip to content

Instantly share code, notes, and snippets.

@Nemo64
Created March 29, 2021 11:42
Show Gist options
  • Star 8 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save Nemo64/fb5ff01c36e910aec1b644db879a30c0 to your computer and use it in GitHub Desktop.
Save Nemo64/fb5ff01c36e910aec1b644db879a30c0 to your computer and use it in GitHub Desktop.
Live templates for common doctrine fields
<template name="bool:default" value="/**&#10; * @var bool&#10; * @ORM\Column(type=&quot;boolean&quot;, options={&quot;default&quot;: $default$})&#10; */&#10;private bool $$$name$ = $default$;&#10;&#10;$END$&#10;&#10;public function is$method$(): bool&#10;{&#10; return $this-&gt;$name$;&#10;}&#10;&#10;public function set$method$(bool $$$name$): void&#10;{&#10; $this-&gt;$name$ = $$$name$;&#10;}" description="boolean column" toReformat="false" toShortenFQNames="true">
<variable name="name" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="default" expression="enum(&quot;false&quot;, &quot;true&quot;)" defaultValue="" alwaysStopAt="true" />
<variable name="method" expression="capitalize(name)" defaultValue="" alwaysStopAt="false" />
<context>
<option name="PHP Class Member" value="true" />
</context>
</template>
<template name="bool:nullable" value="/**&#10; * @var bool|null&#10; * @ORM\Column(type=&quot;boolean&quot;, nullable=true)&#10; */&#10;private ?bool $$$name$ = null;&#10;&#10;$END$&#10;&#10;public function is$method$(): ?bool&#10;{&#10; return $this-&gt;$name$;&#10;}&#10;&#10;public function set$method$(?bool $$$name$): void&#10;{&#10; $this-&gt;$name$ = $$$name$;&#10;}" description="boolean column" toReformat="false" toShortenFQNames="true">
<variable name="name" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="method" expression="capitalize(name)" defaultValue="" alwaysStopAt="false" />
<context>
<option name="PHP Class Member" value="true" />
</context>
</template>
<template name="bool:requred" value="/**&#10; * @var bool|null&#10; * @ORM\Column(type=&quot;boolean&quot;)&#10; */&#10;private ?bool $$$name$ = null;&#10;&#10;$END$&#10;&#10;public function is$method$(): ?bool&#10;{&#10; return $this-&gt;$name$;&#10;}&#10;&#10;public function set$method$(?bool $$$name$): void&#10;{&#10; $this-&gt;$name$ = $$$name$;&#10;}" description="boolean column" toReformat="false" toShortenFQNames="true">
<variable name="name" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="method" expression="capitalize(name)" defaultValue="" alwaysStopAt="false" />
<context>
<option name="PHP Class Member" value="true" />
</context>
</template>
<template name="date:default" value="/**&#10; * @var \DateTimeImmutable&#10; * @ORM\Column(type=&quot;$type$_immutable&quot;)&#10; */&#10;private \DateTimeImmutable $$$name$;&#10;&#10;$END$&#10;&#10;public function get$method$(): \DateTimeImmutable&#10;{&#10; return $this-&gt;$name$;&#10;}&#10;&#10;public function set$method$(\DateTimeImmutable $$$name$): void&#10;{&#10; $this-&gt;$name$ = $$$name$;&#10;}" description="date/time column" toReformat="false" toShortenFQNames="true">
<variable name="type" expression="enum(&quot;datetime&quot;, &quot;date&quot;, &quot;time&quot;)" defaultValue="" alwaysStopAt="true" />
<variable name="name" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="method" expression="capitalize(name)" defaultValue="" alwaysStopAt="false" />
<context>
<option name="PHP Class Member" value="true" />
</context>
</template>
<template name="date:nullable" value="/**&#10; * @var \DateTimeImmutable|null&#10; * @ORM\Column(type=&quot;$type$_immutable&quot;, nullable=true)&#10; */&#10;private ?\DateTimeImmutable $$$name$ = null;&#10;&#10;$END$&#10;&#10;public function get$method$(): ?\DateTimeImmutable&#10;{&#10; return $this-&gt;$name$;&#10;}&#10;&#10;public function set$method$(?\DateTimeImmutable $$$name$): void&#10;{&#10; $this-&gt;$name$ = $$$name$;&#10;}" description="date/time column" toReformat="false" toShortenFQNames="true">
<variable name="type" expression="enum(&quot;datetime&quot;, &quot;date&quot;, &quot;time&quot;)" defaultValue="" alwaysStopAt="true" />
<variable name="name" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="method" expression="capitalize(name)" defaultValue="" alwaysStopAt="false" />
<context>
<option name="PHP Class Member" value="true" />
</context>
</template>
<template name="date:required" value="/**&#10; * @var \DateTimeImmutable|null&#10; * @ORM\Column(type=&quot;$type$_immutable&quot;)&#10; */&#10;private ?\DateTimeImmutable $$$name$ = null;&#10;&#10;$END$&#10;&#10;public function get$method$(): ?\DateTimeImmutable&#10;{&#10; return $this-&gt;$name$;&#10;}&#10;&#10;public function set$method$(?\DateTimeImmutable $$$name$): void&#10;{&#10; $this-&gt;$name$ = $$$name$;&#10;}" description="date/time column" toReformat="false" toShortenFQNames="true">
<variable name="type" expression="enum(&quot;datetime&quot;, &quot;date&quot;, &quot;time&quot;)" defaultValue="" alwaysStopAt="true" />
<variable name="name" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="method" expression="capitalize(name)" defaultValue="" alwaysStopAt="false" />
<context>
<option name="PHP Class Member" value="true" />
</context>
</template>
<template name="entity" value="&#10;use DH\DoctrineAuditBundle\Annotation as Audit;&#10;use Doctrine\ORM\Mapping as ORM;&#10;&#10;/**&#10; * @ORM\Table()&#10; * @ORM\Entity()&#10; * @Audit\Auditable()&#10; **/" description="entity annotations" toReformat="false" toShortenFQNames="true">
<context>
<option name="PHP Statement" value="true" />
</context>
</template>
<template name="int:default" value="/**&#10; * @var int&#10; * @ORM\Column(type=&quot;integer&quot;, options={&quot;default&quot;: $default$})&#10; */&#10;private int $$$name$ = $default$;&#10;&#10;$END$&#10;&#10;public function get$method$(): int&#10;{&#10; return $this-&gt;$name$;&#10;}&#10;&#10;public function set$method$(int $$$name$): void&#10;{&#10; $this-&gt;$name$ = $$$name$;&#10;}" description="integer column" toReformat="false" toShortenFQNames="true">
<variable name="name" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="default" expression="enum(&quot;0&quot;)" defaultValue="" alwaysStopAt="true" />
<variable name="method" expression="capitalize(name)" defaultValue="" alwaysStopAt="false" />
<context>
<option name="PHP Class Member" value="true" />
</context>
</template>
<template name="int:nullable" value="/**&#10; * @var int|null&#10; * @ORM\Column(type=&quot;integer&quot;, nullable=true)&#10; */&#10;private ?int $$$name$ = null;&#10;&#10;$END$&#10;&#10;public function get$method$(): ?int&#10;{&#10; return $this-&gt;$name$;&#10;}&#10;&#10;public function set$method$(?int $$$name$): void&#10;{&#10; $this-&gt;$name$ = $$$name$;&#10;}" description="integer column" toReformat="false" toShortenFQNames="true">
<variable name="name" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="method" expression="capitalize(name)" defaultValue="" alwaysStopAt="false" />
<context>
<option name="PHP Class Member" value="true" />
</context>
</template>
<template name="int:required" value="/**&#10; * @var int|null&#10; * @ORM\Column(type=&quot;integer&quot;)&#10; */&#10;private ?int $$$name$ = null;&#10;&#10;$END$&#10;&#10;public function get$method$(): ?int&#10;{&#10; return $this-&gt;$name$;&#10;}&#10;&#10;public function set$method$(?int $$$name$): void&#10;{&#10; $this-&gt;$name$ = $$$name$;&#10;}" description="integer column" toReformat="false" toShortenFQNames="true">
<variable name="name" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="method" expression="capitalize(name)" defaultValue="" alwaysStopAt="false" />
<context>
<option name="PHP Class Member" value="true" />
</context>
</template>
<template name="mto" value="/**&#10; * @var $Class$|null&#10; * @ORM\ManyToOne(targetEntity=$Class$::class, inversedBy=&quot;$backProp$s&quot;)&#10; * @ORM\JoinColumn(onDelete=&quot;CASCADE&quot;, nullable=false)&#10; */&#10;private ?$Class$ $$$var$ = null;&#10;&#10;public function get$MethodName$(): ?$Class$&#10;{&#10; return $this-&gt;$var$;&#10;}&#10;&#10;public function set$MethodName$(?$Class$ $$$var$): void&#10;{&#10; if ($this-&gt;$var$ === $$$var$) {&#10; return;&#10; }&#10;&#10; if ($this-&gt;$var$ !== null) {&#10; $this-&gt;$var$-&gt;remove$backMeth$($this);&#10; }&#10; &#10; $this-&gt;$var$ = $$$var$;&#10; &#10; if ($$$var$ !== null) {&#10; $$$var$-&gt;add$backMeth$($this);&#10; }&#10;}" description="setter for m-1" toReformat="false" toShortenFQNames="true">
<variable name="var" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="MethodName" expression="capitalize(var)" defaultValue="" alwaysStopAt="false" />
<variable name="Class" expression="capitalize(var)" defaultValue="" alwaysStopAt="true" />
<variable name="backMeth" expression="phpClassName()" defaultValue="" alwaysStopAt="true" />
<variable name="backProp" expression="decapitalize(backMeth)" defaultValue="" alwaysStopAt="false" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="otm" value="/**&#10; * @var Collection|$Class$[]&#10; * @ORM\OneToMany(targetEntity=$Class$::class, mappedBy=&quot;$backProp$&quot;, cascade={&quot;ALL&quot;}, orphanRemoval=true)&#10; */&#10;private Collection $$$var$s;&#10;&#10;public function __construct()&#10;{&#10; $this-&gt;$var$s = new ArrayCollection();&#10;}&#10;&#10;/**&#10; * @return $Class$[]&#10; */&#10;public function get$MethodName$s(): array&#10;{&#10; return $this-&gt;$var$s-&gt;toArray();&#10;}&#10;&#10;public function add$MethodName$($Class$ $$$var$): bool&#10;{&#10; if ($this-&gt;$var$s-&gt;contains($$$var$)) {&#10; return false;&#10; }&#10; &#10; if (!$this-&gt;$var$s-&gt;add($$$var$)) {&#10; return false;&#10; }&#10; &#10; $$$var$-&gt;set$backMeth$($$this);&#10; return true;&#10;}&#10;&#10;public function remove$MethodName$($Class$ $$$var$): bool&#10;{&#10; if (!$this-&gt;$var$s-&gt;removeElement($$$var$)) {&#10; return false;&#10; }&#10;&#10; if ($$$var$-&gt;get$backMeth$() === $this) {&#10; $$$var$-&gt;set$backMeth$(null);&#10; }&#10; &#10; return true;&#10;}" description="adder remover getter" toReformat="false" toShortenFQNames="true">
<variable name="var" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="MethodName" expression="capitalize(var)" defaultValue="" alwaysStopAt="false" />
<variable name="Class" expression="capitalize(var)" defaultValue="" alwaysStopAt="true" />
<variable name="backMeth" expression="phpClassName()" defaultValue="" alwaysStopAt="true" />
<variable name="backProp" expression="decapitalize(backMeth)" defaultValue="" alwaysStopAt="false" />
<context>
<option name="PHP" value="true" />
</context>
</template>
<template name="str:default" value="/**&#10; * @var string&#10; * @ORM\Column(type=&quot;string&quot;, length=50, options={&quot;default&quot;: &quot;$default$&quot;})&#10; */&#10;private string $$$name$ = &quot;$default$&quot;;&#10;&#10;$END$&#10;&#10;public function get$method$(): string&#10;{&#10; return $this-&gt;$name$;&#10;}&#10;&#10;public function set$method$(string $$$name$): void&#10;{&#10; $this-&gt;$name$ = $$$name$;&#10;}" description="string column" toReformat="false" toShortenFQNames="true">
<variable name="name" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="method" expression="capitalize(name)" defaultValue="" alwaysStopAt="false" />
<variable name="default" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="PHP Class Member" value="true" />
</context>
</template>
<template name="str:nullable" value="/**&#10; * @var string|null&#10; * @ORM\Column(type=&quot;string&quot;, length=50, nullable=true)&#10; */&#10;private ?string $$$name$ = null;&#10;&#10;$END$&#10;&#10;public function get$method$(): ?string&#10;{&#10; return $this-&gt;$name$;&#10;}&#10;&#10;public function set$method$(?string $$$name$): void&#10;{&#10; $this-&gt;$name$ = $$$name$;&#10;}" description="string column" toReformat="false" toShortenFQNames="true">
<variable name="name" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="method" expression="capitalize(name)" defaultValue="" alwaysStopAt="false" />
<context>
<option name="PHP Class Member" value="true" />
</context>
</template>
<template name="str:required" value="/**&#10; * @var string|null&#10; * @ORM\Column(type=&quot;string&quot;, length=50)&#10; */&#10;private ?string $$$name$ = null;&#10;&#10;$END$&#10;&#10;public function get$method$(): ?string&#10;{&#10; return $this-&gt;$name$;&#10;}&#10;&#10;public function set$method$(?string $$$name$): void&#10;{&#10; $this-&gt;$name$ = $$$name$;&#10;}" description="string column" toReformat="false" toShortenFQNames="true">
<variable name="name" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="method" expression="capitalize(name)" defaultValue="" alwaysStopAt="false" />
<context>
<option name="PHP Class Member" value="true" />
</context>
</template>
<template name="text:nullable" value="/**&#10; * @var string|null&#10; * @ORM\Column(type=&quot;text&quot;, nullable=true)&#10; */&#10;private ?string $$$name$ = null;&#10;&#10;$END$&#10;&#10;public function get$method$(): ?string&#10;{&#10; return $this-&gt;$name$;&#10;}&#10;&#10;public function set$method$(?string $$$name$): void&#10;{&#10; $this-&gt;$name$ = $$$name$;&#10;}" description="text column" toReformat="false" toShortenFQNames="true">
<variable name="name" expression="" defaultValue="" alwaysStopAt="true" />
<variable name="method" expression="capitalize(name)" defaultValue="" alwaysStopAt="false" />
<context>
<option name="PHP Class Member" value="true" />
</context>
</template>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment