Egoblog.cz - Petr Kobelka

Pomocník tvorby Setterů a Getterů pro model nejen v Nette/PHP

Dne vám dám k dispozici php trídu, kterou používám pro generování setterů a getterů do tříd v objektovém modelu.


PHP | Komentáře (0) | Shlédnuto 2011 × | Vloženo: 29. ledna 2015

Když pracujete v objektovém prostředí, hodně často využíváte settery a gettery pro dodržení principu zapoudření, který je esenciální pro objektově orientované programování nejen v PHP/Nette.

Když nemáte analytika, který vytvoří analytický model v některém nástroji, např. EA a generuje vám tyto třídy automaticky, pak vám nezbývá než psát a psát. Jistě, existuje více různých berliček, které vám pomůžou se tomuto problému vyhnout (__CALL(), __set(), __get() - tedy magické metody). Na druhou stranku když v setteru chcete kontrolovat korektnost vkládané hodnoty, nemáte na výběr.

Pomocný skript pro generování Setterů a Getterů v PHP

Proto jsem si napsal skript níže, který mi vygeneruje settery a gettery takové, jaké potřebuji.

$params = explode(',', $_GET['name']);
$tpl = '
/** @var string  */
private $[A] = NULL;
/**
 * setter [A]
 *
 * @param string $[A]
 * @access public
 */
public function set[AUF]($[A])
{
  $this->[A] = $[A];
}
/**
 * getter [A]
 *
 * @access public
 * @return string
 */
public function get[AUF]()
{
  return $this->[A];
}
';

echo '<pre>';
foreach ($params as $p)
{
  $rep =
  [
    '[A]' => $p,
    '[AUF]' => ucfirst($p),
  ];

  echo strtr($tpl, $rep);
}
echo '</pre>';

Volání pak provádíte příslušnou adresou v prohlížeči kde jako parametr name dáte jednotlivé property oddělené čárkou. Např. http://dev.loc/setGet.php?name=id,name mi vrátí následující kód

/** @var string  */
private $id = NULL;
/**
 * setter id
 *
 * @param string $id
 * @access public
 */
public function setId($id)
{
  $this->id = $id;
}
/**
 * getter id
 *
 * @access public
 * @return string
 */
public function getId()
{
  return $this->id;
}

/** @var string  */
private $name = NULL;
/**
 * setter name
 *
 * @param string $name
 * @access public
 */
public function setName($name)
{
  $this->name = $name;
}
/**
 * getter name
 *
 * @access public
 * @return string
 */
public function getName()
{
  return $this->name;
}

Super, že -_^

Podobné články jako "Pomocník tvorby Setterů a Getterů pro model nejen v Nette/PHP"

Petr Kobelka | Egoblog.cz | Tvorba www stránek - www.petrkobelka.cz

Petr Kobelka
Autor je zkušeným web developerem a programátorem s více než 10 letými zkušenostmi. Pracuje jako programátor pro známou Olomouckou společnost zabývající se tvorbou internetových a intranetových řešení. Spolu se zaměstnáním pracuje na volné noze a zabývá se tvorbou internetových stránek. Ve volném čase rád fotí, jezdí na kole, plave a cestuje.

Komentáře

E-mail je potřeba pouze pro vygenerování Gravataru!

Oups, žádné komentáře? Buďtě první !!!

Blog píše Petr Kobelka

Petr Kobelka - egoblog.cz

Žádám všechny, kteří mají zájem vkládat komentáře, aby se řídili pravidly NETikety. Komentáře, porušující tato pravidla můžou být bez varování smazány.