Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Controller - co lepsze?, getInstance(), czy przekazywanie obiektom...
Prph
post
Post #1





Grupa: Zarejestrowani
Postów: 338
Pomógł: 2
Dołączył: 4.03.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Witam,

Co jest lepszym rozwiazaniem? Singletone, czy przekazywanie go obiektom?
Dla przykladu:

  1. <?php
  2. // 1 rozwiazanie, klasa akcji:
  3.  
  4. public function execute(IController $oController)
  5. {
  6. $oController->.......;
  7. }
  8.  
  9. // 2 rozwiazanie, klasa akcji:
  10.  
  11. public function execute()
  12. {
  13. $oController = Controller::getInstance();
  14. $oController->.......;
  15. }
  16. ?>


Adrian.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
NuLL
post
Post #2





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

Ostrzeżenie: (0%)
-----


Prosty quiz (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
  1. <?php
  2.  
  3. class user
  4. {
  5. private static $oInstance=null;
  6.  
  7. private $id=0,$lang='';
  8.  
  9. public static function getInstance()
  10. {
  11. if(self::$oInstance==null) self::$oInstance=&new user();
  12.  
  13. return self::$oInstance;
  14. }
  15.  
  16. private function __construct()
  17. {
  18. $userData=httpContext::session()->getAttribute('user');
  19.  
  20. if($userData{1})
  21. {
  22. $userData=unserialize($userData);
  23.  
  24. $this->id=(int)$userData['id'];
  25. $this->lang=$userData['lang'];
  26. }
  27. else
  28. {
  29. $this->id=0;
  30. $this->lang=DEFAULT_LANG;
  31. }
  32. }
  33.  
  34. public function isLoggedIn()
  35. {
  36. return ($this->id>0);
  37. }
  38.  
  39. public function login($login,$pass)
  40. {
  41. $auth=authenticator::getInstance();
  42.  
  43. $id=$auth->authenticate($login,$pass);
  44.  
  45. if($id>0)
  46. {
  47. $this->id=$id;
  48. $this->lang=DEFAULT_LANG;
  49. return 1;
  50. }
  51. else
  52. {
  53. return 0;
  54. }
  55. }
  56.  
  57. public function save()
  58. {
  59. httpContext::session()->setAttribute('user',serialize(array('id'=>$this->id,'lang'=>$this->lang)));
  60. }
  61.  
  62. public function getLang()
  63. {
  64. return $this->lang;
  65. }
  66.  
  67. public function logout()
  68. {
  69. $this->id=0;
  70. }
  71. }
  72.  
  73. ?>

I teraz w jaki sposob majac kontekst w kontrolerze obsluzysz taka klase jesli ona nie ma singletonu (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Bo wg mnie sztuka dla sztuki ( absurdem ) jest przekazywanie kotrolera z kontekstem do kazdej klasy (IMG:http://forum.php.pl/style_emoticons/default/withstupidsmiley.gif)

Ten post edytował NuLL 3.07.2006, 17:53:54
Go to the top of the page
+Quote Post

Posty w temacie
- Prph   Controller - co lepsze?   2.07.2006, 08:15:40
- - Ludvik   Lepiej przekazywać jako argument funkcji. Pytanie ...   2.07.2006, 09:45:53
- - Prph   Dlaczego? Zobacz Mojavi - tam wszedzie sie tak rob...   2.07.2006, 10:42:35
- - anas   Hej. Wydaje mi się że dużo lepiej jest przekazywa...   2.07.2006, 10:47:10
- - Prph   Z drugiej strony czesc obiektow otrzymuje w kontru...   2.07.2006, 12:23:42
- - orson   witam Jestem w trakcie kończenia innego rozwiązan...   2.07.2006, 12:34:46
- - Ludvik   Skoro tak musisz robić, to bym się skłaniał do prz...   2.07.2006, 12:45:42
- - Prph   Owszem, kontroler Mojavi ma troche skomplikowanego...   2.07.2006, 15:07:41
- - anas   @orson: czy Twoje rozwiazanie to cos na zasadzie I...   2.07.2006, 17:02:39
- - orson   witam Niestety nie jest to IoC :/ może kiedyś Za...   2.07.2006, 18:15:27
- - bigZbig   @orson - byłbym wdzięczny gdybyś pr...   3.07.2006, 10:47:17
|- - Prph   Cytat(bigZbig @ 3.07.2006, 09:47 ) @Prph ...   3.07.2006, 14:27:10
- - Ludvik   Podpisuję się pod drugim pytaniem bigZbiga. W ten ...   3.07.2006, 11:12:08
- - Cysiaczek   W zasadzie, to ja też chciałbym przeczytac opinie ...   3.07.2006, 11:36:35
- - orson   witam @bigZbig: to jest rozwiązanie generalne. Po...   3.07.2006, 11:44:00
- - anas   Hej. Również uważam, że bez sensu ...   3.07.2006, 11:48:35
- - NuLL   CytatCo myślicie o takim podejściu?Podej...   3.07.2006, 11:57:30
- - Cysiaczek   Wydaje mi się, że samo przekazanie obiektu kontrol...   3.07.2006, 12:14:57
- - bigZbig   Myślę, że tu jest generalnie proble...   3.07.2006, 13:18:28
- - NuLL   Prosty quiz [PHP] pobierz, plaintext <?php...   3.07.2006, 17:52:55
|- - Prph   Cytat(NuLL @ 3.07.2006, 16:52 ) Bo wg mni...   4.07.2006, 01:31:37
- - splatch   Ej, panowie, ale chyba znacie definicje Front Cont...   3.07.2006, 19:54:12
- - Bora   Może warto zastosować tutaj rozwiązanie z javy? Np...   5.07.2006, 00:46:42
- - Ludvik   Hm... muszę przynać, że ciekawie to wygląda i nawe...   5.07.2006, 08:44:07
- - Sh4dow   Moim zdaniem wszystko zalezy od konstrukcji aplika...   6.07.2006, 11:17:08
- - Cysiaczek   Ale czy w tym wypdku o którym mówisz Sh4dow, to ni...   6.07.2006, 14:34:51
- - bigZbig   @Cysiaczek - jesli to jet klasa Singleton (poprawn...   6.07.2006, 14:42:44
- - Cysiaczek   Tak. Zdaję sobie z tego sprawę - mimo to zastanawi...   6.07.2006, 14:47:43
- - bigZbig   Ale w czym problem? Zalezy od ciebie czy przekazes...   6.07.2006, 14:55:33
- - Cysiaczek   Aha. Własnie do tego zmierzałem - po co "psuć...   6.07.2006, 15:07:49
- - splatch   Singleton jest zły. Dlaczego? Jest to niemalże to ...   6.07.2006, 18:15:53
- - Bora   podejrzewam że IoC może sie nie podobać osobom któ...   6.07.2006, 19:36:24


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.10.2025 - 20:30