class DbTools – statická třída, nebo služba?
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- nanuqcz
- Člen | 822
Ahoj, píšu si pro svoje vznikající CMS třídu DbTools, kde budou metody, které často používám v souvislosti s databází (kontrola struktury tabulek, přepočítání hodnot v DFS stromu apod.). Nemůžu se ale rozhodnout, jestli to mám pojmout jako třídu se statickýma metodama, nebo jako službu.
Nejdřív jsem myslel, že služba bude čistší řešení, když už používám DI. Přecijen tam nějak potřebuju na-injectovat připojení k DB, prefix tabulek apod. Ale pak jsem si všiml, že třída Nette\Utils\Strings (což je v principu stejná třída, jen pro práci s řetězci místo s databází) je statická (resp. její metody). A spoustu podobných tříd je statických.
Jde mi o čistotu návrhu, díky.
- Filip Procházka
- Moderator | 4668
Třída Strings
neobsahuje připojení k databázi. Udělej to
jako klasickou službu.