/Templates/FOS/Entity/Entity.php

https://github.com/jdewit/GeneratorBundle · PHP · 445 lines · 181 code · 46 blank · 218 comment · 36 complexity · f067d6677ca6ea2add2e815da04010da MD5 · raw file

  1. <?php
  2. namespace {{ bundleNamespace }}\Entity;
  3. use Doctrine\ORM\Mapping as ORM;
  4. {% for field in fields %}
  5. {%- if (field.type == "oneToMany") or (field.type == "manyToMany") %}
  6. {%- if stop is not defined %}
  7. use Doctrine\Common\Collections\ArrayCollection;
  8. {%- set stop = true -%}
  9. {%- endif %}
  10. {%- endif %}
  11. {% endfor %}
  12. use JMS\SerializerBundle\Annotation\Exclude;
  13. use Symfony\Component\Validator\Constraints as Assert;
  14. /**
  15. * {{ bundleNamespace }}\Entity\{{ entity }}
  16. *
  17. * @author Joris de Wit <joris.w.dewit@gmail.com>
  18. *
  19. * @ORM\Entity
  20. * @ORM\Table(name="{{ bundleCoreName }}_{{ entityCC }}")
  21. * @ORM\HasLifecycleCallbacks
  22. */
  23. class {{ entity }}
  24. {
  25. /**
  26. * @var integer
  27. *
  28. * @ORM\Column(name="id", type="integer")
  29. * @ORM\Id
  30. * @ORM\GeneratedValue(strategy="AUTO")
  31. */
  32. protected $id;
  33. {% for field in fields %}
  34. {% if field.type == "manyToOne" %}
  35. /**
  36. * @var \{{ field.targetEntity }}
  37. *
  38. * @ORM\ManyToOne(targetEntity="{{ field.targetEntity }}")
  39. */
  40. protected ${{ field.fieldName }};
  41. {% elseif field.type == "oneToMany" %}
  42. /**
  43. * @var ArrayCollection
  44. *
  45. * @ORM\OneToMany(targetEntity="{{ field.targetEntity }}"{% if field.mappedBy %}, mappedBy="{{ field.mappedBy }}"{% endif %}{% if field.inversedBy %}, inversedBy="{{ field.inversedBy }}"{% endif %}{% if field.cascade is not empty %}, cascade={ {% for item in field.cascade %}{% if loop.last %}"{{ item }}"{% else %}"{{ item }}",{% endif %}{% endfor %} }{% endif %}{% if field.orphanRemoval is defined %}{% if field.orphanRemoval %}, orphanRemoval=true {% endif %}{% endif %})
  46. */
  47. protected ${{ field.fieldName }};
  48. {% elseif field.type == "manyToMany" %}
  49. /**
  50. * @var ArrayCollection
  51. *
  52. * @ORM\ManyToMany(targetEntity="{{ field.targetEntity }}"{% if field.mappedBy %}, mappedBy="{{ field.mappedBy }}"{% endif %}{% if field.inversedBy %}, inversedBy="{{ field.inversedBy }}"{% endif %}{% if field.cascade is not empty %}, cascade={ {% for item in field.cascade %}{% if loop.last %}"{{ item }}"{% else %}"{{ item }}",{% endif %}{% endfor %} }{% endif %}{% if field.orphanRemoval is defined %}{% if field.orphanRemoval %}, orphanRemoval=true {% endif %}{% endif %})
  53. * @ORM\JoinTable(name="{{ bundleCoreName }}_{{ entityCC }}_{{ field.fieldName }}")
  54. */
  55. protected ${{ field.fieldName }};
  56. {% elseif field.type == "string" %}
  57. /**
  58. * @var string
  59. *
  60. * @ORM\Column(type="string"{% if field.length is defined and field.length is not empty %}, length={{ field.length }}{% endif %}{% if field.nullable %}, nullable=true{% endif %})
  61. */
  62. protected ${{ field.fieldName }};
  63. {% elseif field.type == "text" %}
  64. /**
  65. * @var text
  66. *
  67. * @ORM\Column(type="text"{% if field.nullable %}, nullable=true{% endif %})
  68. */
  69. protected ${{ field.fieldName }};
  70. {% elseif field.type == "integer" %}
  71. /**
  72. * @var integer
  73. *
  74. * @ORM\Column(type="integer"{% if field.nullable %}, nullable=true{% endif %})
  75. */
  76. protected ${{ field.fieldName }};
  77. {% elseif field.type == "decimal" %}
  78. /**
  79. * @var decimal
  80. *
  81. * @ORM\Column(type="decimal"{% if field.precision is defined %}, precision={{ field.precision }}{% endif %}{% if field.scale is defined %}, scale={{ field.scale }}{% endif %}{% if field.nullable %}, nullable=true{% endif %})
  82. */
  83. protected ${{ field.fieldName }};
  84. {% elseif field.type == "float" %}
  85. /**
  86. * @var float
  87. *
  88. * @ORM\Column(type="float"{% if field.length is defined %}, length={{ field.length }}{% endif %}{% if field.nullable %}, nullable=true{% endif %})
  89. */
  90. protected ${{ field.fieldName }};
  91. {% elseif field.type == "datetime" %}
  92. /**
  93. * @var \DateTime
  94. *
  95. * @ORM\Column(type="datetime"{% if field.nullable %}, nullable=true{% endif %})
  96. */
  97. protected ${{ field.fieldName }};
  98. {% else %}
  99. /**
  100. * @var {{ field.type }}
  101. *
  102. * @ORM\Column(type="{{ field.type }}"{% if field.nullable %}, nullable=true{% endif %})
  103. */
  104. protected ${{ field.fieldName }};
  105. {% endif %}{% endfor %}
  106. {% if avro_generator.use_owner %}
  107. /**
  108. * @var \Avro\UserBundle\Entity\Owner
  109. *
  110. * @ORM\ManyToOne(targetEntity="Avro\UserBundle\Entity\Owner")
  111. * @exclude
  112. */
  113. protected $owner;
  114. {% endif %}
  115. /**
  116. * @var \DateTime
  117. *
  118. * @ORM\Column(type="datetime")
  119. */
  120. protected $createdAt;
  121. /**
  122. * @var \DateTime
  123. *
  124. * @ORM\Column(type="datetime", nullable=true)
  125. */
  126. protected $updatedAt;
  127. /**
  128. * @var boolean
  129. *
  130. * @ORM\Column(type="boolean", nullable=true)
  131. */
  132. protected $isDeleted = false;
  133. /**
  134. * @var \DateTime
  135. *
  136. * @ORM\Column(type="datetime", nullable=true)
  137. */
  138. protected $deletedAt;
  139. /**
  140. * @ORM\PrePersist
  141. */
  142. public function PrePersist()
  143. {
  144. $this->createdAt = new \DateTime('now');
  145. }
  146. /**
  147. * @ORM\PreUpdate
  148. */
  149. public function PreUpdate()
  150. {
  151. $this->updatedAt= new \DateTime('now');
  152. }
  153. public function __construct()
  154. {
  155. {%- for field in fields %}
  156. {% if (field.type == "oneToMany") or (field.type == "manyToMany") %}
  157. $this->{{ field.fieldName }} = new ArrayCollection();
  158. {% endif %}
  159. {%- endfor %}
  160. }
  161. /**
  162. * Get {{ entityCC }} id
  163. *
  164. * @return integer
  165. */
  166. public function getId()
  167. {
  168. return $this->id;
  169. }
  170. {% for field in fields %}
  171. {% set adjustedFieldName = field.fieldName|slice(0, -1) %}
  172. {% if field.type == "manyToOne" %}
  173. /**
  174. * Get {{ field.fieldName }}
  175. *
  176. * @return {{ field.targetEntity }}
  177. */
  178. public function get{{ field.fieldName | ucFirst }}()
  179. {
  180. return $this->{{ field.fieldName }};
  181. }
  182. /**
  183. * Set {{ field.fieldName }}
  184. *
  185. * @param {{ field.type }} ${{ field.fieldName }}
  186. */
  187. public function set{{ field.fieldName | ucFirst }}(\{{ field.targetEntity }} ${{ field.fieldName }} = null)
  188. {
  189. $this->{{ field.fieldName }} = ${{ field.fieldName }};
  190. }
  191. {% elseif field.type == "oneToMany" %}
  192. /**
  193. * Get {{ field.fieldName }}
  194. *
  195. * @return {{ field.targetEntity }}
  196. */
  197. public function get{{ field.fieldName|ucFirst }}()
  198. {
  199. return $this->{{ field.fieldName }};
  200. }
  201. /**
  202. * Set {{ field.fieldName }}
  203. *
  204. * @param ArrayCollection ${{ field.fieldName }}
  205. */
  206. public function set{{ field.fieldName|ucFirst }}(${{ field.fieldName }})
  207. {
  208. $this->{{ field.fieldName }} = ${{ field.fieldName }};
  209. }
  210. {% if false %}
  211. /**
  212. * Add {{ adjustedFieldName }} to the collection
  213. *
  214. * @param \{{ field.targetEntity }} ${{ adjustedFieldName }}
  215. */
  216. public function add{{ adjustedFieldName|ucFirst }}(\{{ field.targetEntity }} ${{ adjustedFieldName }})
  217. {
  218. $this->{{ field.fieldName }}->add(${{ adjustedFieldName }});
  219. {% if field.mappedBy %}
  220. ${{ adjustedFieldName }}->set{{ entity }}($this);
  221. {% endif %}
  222. }
  223. /**
  224. * Remove {{ field.fieldName }} from the collection of related items
  225. *
  226. * @param \{{ field.targetEntity }} ${{ field.fieldName }}
  227. */
  228. public function remove{{ adjustedFieldName|ucFirst }}(\{{ field.targetEntity }} ${{ adjustedFieldName }})
  229. {
  230. $this->{{ field.fieldName }}->removeElement(${{ adjustedFieldName }});
  231. }
  232. {% endif %}
  233. {% elseif field.type == "manyToMany" %}
  234. /**
  235. * Get {{ field.fieldName }}
  236. *
  237. * @return {{ field.targetEntity }}
  238. */
  239. public function get{{ field.fieldName|ucFirst }}()
  240. {
  241. return $this->{{ field.fieldName }};
  242. }
  243. /**
  244. * Set {{ field.fieldName }}
  245. *
  246. * @param ArrayCollection ${{ field.fieldName }}
  247. */
  248. public function set{{ field.fieldName|ucFirst }}(${{ field.fieldName }})
  249. {
  250. $this->{{ field.fieldName }} = ${{ field.fieldName }};
  251. }
  252. {% if false %}
  253. /**
  254. * Add {{ adjustedFieldName }} to the collection
  255. *
  256. * @param \{{ field.targetEntity }} ${{ adjustedFieldName }}
  257. */
  258. public function add{{ adjustedFieldName|ucFirst }}(\{{ field.targetEntity }} ${{ adjustedFieldName }})
  259. {
  260. $this->{{ field.fieldName }}->add(${{ adjustedFieldName }});
  261. {% if field.mappedBy %}
  262. ${{ adjustedFieldName }}->set{{ entity }}($this);
  263. {% endif %}
  264. }
  265. /**
  266. * Remove {{ field.fieldName }} from the collection of related items
  267. *
  268. * @param \{{ field.targetEntity }} ${{ field.fieldName }}
  269. */
  270. public function remove{{ adjustedFieldName|ucFirst }}(\{{ field.targetEntity }} ${{ adjustedFieldName }})
  271. {
  272. $this->{{ field.fieldName }}->removeElement(${{ adjustedFieldName }});
  273. }
  274. {% endif %}
  275. {% else %}
  276. /**
  277. * Get {{ field.fieldName }}
  278. *
  279. * @return {{ field.type }}
  280. */
  281. public function get{{ field.fieldName|ucFirst }}()
  282. {
  283. return $this->{{ field.fieldName }};
  284. }
  285. /**
  286. * Set {{ field.fieldName }}
  287. *
  288. * @param {{ field.type }} ${{ field.fieldName }}
  289. */
  290. public function set{{ field.fieldName|ucFirst }}(${{ field.fieldName }})
  291. {
  292. $this->{{ field.fieldName }} = ${{ field.fieldName }};
  293. }
  294. {% endif %}{% endfor %}
  295. {% if avro_generator.use_owner %}
  296. /**
  297. * Set owner
  298. *
  299. * @param \Avro\UserBundle\Entity\Owner $owner
  300. */
  301. public function setOwner(\Avro\UserBundle\Entity\Owner $owner)
  302. {
  303. $this->owner = $owner;
  304. }
  305. /**
  306. * Get owner
  307. *
  308. * @return \Avro\UserBundle\Entity\Owner $owner
  309. */
  310. public function getOwner()
  311. {
  312. return $this->owner;
  313. }
  314. {% endif %}
  315. /**
  316. * Set createdAt
  317. *
  318. * @param datetime $createdAt
  319. */
  320. public function setCreatedAt($createdAt)
  321. {
  322. $this->createdAt = $createdAt;
  323. }
  324. /**
  325. * Get createdAt
  326. *
  327. * @return datetime $createdAt
  328. */
  329. public function getCreatedAt()
  330. {
  331. return $this->createdAt;
  332. }
  333. /**
  334. * Set updatedAt
  335. *
  336. * @param datetime $updatedAt
  337. */
  338. public function setUpdatedAt($updatedAt)
  339. {
  340. $this->updatedAt = $updatedAt;
  341. }
  342. /**
  343. * Get updatedAt
  344. *
  345. * @return datetime $updatedAt
  346. */
  347. public function getUpdatedAt()
  348. {
  349. return $this->updatedAt;
  350. }
  351. /**
  352. * Get isDeleted
  353. *
  354. * @return boolean
  355. */
  356. public function getIsDeleted()
  357. {
  358. return $this->isDeleted;
  359. }
  360. /**
  361. * Set isDeleted
  362. *
  363. * @param boolean $isDeleted
  364. */
  365. public function setIsDeleted($isDeleted)
  366. {
  367. $this->isDeleted = $isDeleted;
  368. }
  369. /**
  370. * Set deletedAt
  371. *
  372. * @param datetime $deletedAt
  373. */
  374. public function setDeletedAt($deletedAt)
  375. {
  376. $this->deletedAt = $deletedAt;
  377. }
  378. /**
  379. * Get deletedAt
  380. *
  381. * @return datetime $deletedAt
  382. */
  383. public function getDeletedAt()
  384. {
  385. return $this->deletedAt;
  386. }
  387. /**
  388. * String output
  389. */
  390. public function __toString()
  391. {
  392. {% for field in fields %}{% if loop.first %}
  393. return $this->{{ field.fieldName }};
  394. {% else %}
  395. //return $this->{{ field.fieldName }};
  396. {% endif %}
  397. {% endfor %}
  398. }
  399. }