Autor | Zpráva | ||
---|---|---|---|
Sunucuu Profil |
Zdravím,
omlouvám se za "zvláštní" titulek, ale lepší mě nenapadl. Pro názornost použiji velmi jednoduché příklady (V praxi jsou složitější a jejich víc). Máme 2 třídy - _GET a _POST. Jsou vždy úplně stejné a liší se pouze tím, jestli se data zpracují přes $_GET nebo $_POST. Nešlo by to nějak zjednodušit? Takto když dělám nějakou změnu, tak musím vždy upravovat každou třídu zvlášť... Zároveň nechci ztěžovat použití... (tzn, nepřidávat žádné parametry při volání static fce...). Budu vděčný za jakoukoliv radu, či popostrčení... Příkladový kód: <?php Class _POST { public static function get ($data){ if (isset($_POST['page'])) return $_POST['page']; else return false; } } Class _GET { public static function get ($data){ if (isset($_GET['page'])) return $_GET['page']; else return false; } } echo _POST::get('page'); echo _GET::get('page'); Moderátor Alphard: Vkládej prosím kódy mezi značky [>pre] a [>/pre] (stačí kliknout na
![]() |
||
Spectator Profil |
Class _POST { public static function get ($data){ if (isset($_POST[$data])) return $_POST[$data]; else return false; } } Class _GET { public static function get ($data){ if (isset($_GET[$data])) return $_GET[$data]; else return false; } } echo _POST::get('page'); echo _GET::get('page'); Parametr navic by mohl být dobrý: public static function get ($data, $method) pak jen rozvětvi podle $method. |
||
Alphard Profil |
Na úvod, ve většině frameworků, co jsem viděl, se to neodděluje do samostatných tříd, maximálně do různých metod třídy např. HttpRequest.
Ale jestli na tom trváte, je to možné. abstract class Request { protected $arr; public function get($key) { if (isset($this->arr[$key])) return $this->arr[$key]; else return false; } } class Post extends Request { public function __construct() { $this->arr = $_POST; } } $post = new Post; echo $post->get('name'); S tím, že míto 'page' tam budou $data a zbavím se statických metod. Doplňuji, pak si můžete různě hrát dál public function __get($name) { return $this->get($name); } |
||
Sunucuu Profil |
#4 · Zasláno: 8. 4. 2012, 08:08:30 · Upravil/a: Sunucuu
Děkuji za názorné příklady, určitě mě to popostrčilo dál! :)
Alphard: btw, mohu se zeptat na rozdíl mezi: $this->arr =& $_POST; a $this->arr = $_POST; Rád bych v tom měl jasno :) Děkuji. |
||
Alphard Profil |
#5 · Zasláno: 8. 4. 2012, 09:42:36
|
||
Sunucuu Profil |
#6 · Zasláno: 8. 4. 2012, 14:22:13
Děkuji za objasnění
|
||
Časová prodleva: 11 let
|
0