Autor | Zpráva | ||
---|---|---|---|
nethor Profil |
#1 · Zasláno: 13. 9. 2014, 12:49:13
Zdravím, mám dotaz spíš v obecné rovině, řešit to umím, ale zajímá mě, jestli neexistuje elegantnější řešení.
V projektu mám konstany, které lze logicky rozdělit do několika skupin, podle toho k řemu se vztahují. V konfigu by se tedy pro přehlednost hodilo definovat konstanty typu pole, což v PHP nejde. Někde jsem našel řešení typu define ("FRUITS", serialize (array ("apple", "cherry", "banana"))); , ale to mi připadá dost nešikovné z hlediska přístupu k uloženým konstantám.
Napadlo mě řešení vytvořením třídy Config , kde se konstanty (konstanty to v tomto případě de facto nejsou) ukládají do statické proměnné. nějak takhle: class Config { static private $Config = array() ; static public function Set($Group,$Key,$Value){ self::$Config[$Group][$Key] = $Value ; return $this ; } static public function Get($Group,$Key){ return self::$Config[$Group][$Key] ; } } Máte někdo lepší řešení? |
||
Alphard Profil |
Konstanty nejsou příliš šťastné, má to hromadu nevýhod.
Třída Config je rozumné řešení, její obsah lze navíc naparsovat z nějakého inteligentního formátu, třeba Nette využívá NEON, viz toto pískoviště. Rozdělení do skupin pak vyplyne přirozeně. Druhou věcí je, jak tuto závislost předávat dál. Přistupovat staticky k Config::Get také není ideál. Současný trend DI velí předávat instancí configu jednotlivě každé třídě. Doplňuji, ne celý config, ale jen tu část, kterou potřebuje.
|
||
Časová prodleva: 10 let
|
0