Složky a Namespace Nette + Doctrine
- Croc
- Člen | 270
Zdravím,
chtěl bych se prosím zeptat na následující.
Jak máte řazené jednotlivé třídy vrstev a jak řešeny namespace? (model, entity, repository, facade či případně další?). Osobně mě napdají 3 varianty:
a) Řazení dle vrstvy (typu třídy):
App/
presenters/
templates/
.....
UserPresenter.pho
model/
UserManager.php
ItemManager.php
repository/
UserRepository.php
ItemRepository.php
facade/
UserFacade.php
ItemFacade.php
entity/
User.php
Item.php
b) Řazení dle reálného objektu:
App/
presenters/
templates/
.....
UserPresenter.pho
model/
User/
UserManager.php
UserRepository.php
UserFacade.php
User.php
Item/
ItemManager.php
ItemRepository.php
ItemFacade.php
Item.php
c) Stejné jako bod a), s tím rozdílem, že Repository, Facade a Entity jsou v modelu
App/
presenters/
templates/
.....
UserPresenter.pho
model/
UserManager.php
ItemManager.php
repository/
UserRepository.php
ItemRepository.php
facade/
UserFacade.php
ItemFacade.php
entity/
User.php
Item.php
Popřípadě jestli máte úplně jiný osvědčený způsob.
Díky moc
EDIT:
Ještě mě napadá tato varianta:
App/
presenters/
templates/
.....
UserPresenter.pho
model/
User.php
UserManager.php
UserRepository.php
UserFacade.php
Item.php
ItemManager.php
ItemFacade.php
ItemRepository.php
Editoval Croc (31. 10. 2015 9:43)
- Croc
- Člen | 270
Díky, kouknu na to.
Ještě bych měl dava dotazy. Nepatří úplně pod toto téma, ale nechci zakládat nové.
Mám entitu User a třídu UserFacade. U (zatím) čtyřech atributů potřebuji z různých míst zjišťovat, zda hodnota určitého atributu je již použita (zda je volná).
Zatím mám uvedený kód:
/**
* Check if the attribute is used.
*
* @param $att_name
* @param $att_value
* @return bool
*/
public function isAttAvailable($att_name, $att_value)
{
$user = $this->userRepository->findBy(array($att_name => $att_value));
if (!$user)
return TRUE;
return FALSE;
}
Moje dvě otázky zní:
- Co je lepší?
- uvedená metoda s tím, že na vstupu bude mít název a hodnotu hledaného atributu (vrátí FALSE pokud už v DB bude) – zde vidím nevýhodu toho, že bych musel mít na nějakém místě definované konstanty s názvem sloupce v DB
- na každý atribut metoda zvlášť (isNickAvailable($att_value) , isEmailAvailable($att_value) , atd…
- Kam tato metoda patří? Do entity User nebo do UserFacade? – osobně bych ji dal do entity
Díky moc :)
Editoval Croc (31. 10. 2015 16:34)