Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Pomysł na CMS i małe wątpliwości, ruchamianie kilka modułów na raz - hm..
tuner
post 22.12.2004, 18:32:55
Post #1





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 10.12.2004

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


Mam pewien problem.

Tworzę mały system portalowy, który ma możliwość uruchamiania kilku modułów jednocześnie. Każdy z tych modułów zwraca HTML do innego obiektu "Template".
Wszystko działa na obiektach. I tutaj pytanie, jak rozwiązać taką sprawę? Na dole opisuję mój sposób. Czy ktoś ma pomysł na lepszy?

W pliku, np. "arts.php" wywołujemy metodę engine'u, która tworzy obiekt modułu (module_arts) dziedziczący z klasy "module". Klasa moduł ma w sobie metody, które pozwalają przechowywać & do "Template'u" wyjściowego oraz różne inne opcje. "Uruchamiamy" stworzony obiekt, czyli nasz moduł "arts" za pomocą metody "run()".
I tu pojawia się problem, bo chcąc stworzyć jakiś bardziej zaawansowany moduł będziemy musieli tworzyć więcej obiektów (module_arts_files, module_arts_comm). Będą one musiały mieć te same opcje co obiekt "module_arts", a więc musimy przekazać wszystkie opcje do kolejnych obiektów (module_arts_files, module_arts_comm) bo muszą przecież wiedzieć, np. do jakiego "Template'u" zwracać HTML.
I tutaj mi się mój pomysł przestaje podobać...

Dotrwałeś do końca tego postu? Dzięki. Odpowiesz? Będę wdzięczny.
Go to the top of the page
+Quote Post
splatch
post 1.01.2005, 19:27:12
Post #2





Grupa: Zarejestrowani
Postów: 487
Pomógł: 7
Dołączył: 7.01.2004
Skąd: Warszawa

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


Myślę, że może Ci pomóc zastosowanie singletonu. Dzięki niemu całe wywołanie będzie obsługiwane przez jeden obiekt Template.
Przykładowy kod:
  1. <?php
  2. class view {
  3. var $template;
  4.  
  5. function view() {
  6. $this->template = new Template;
  7. }
  8.  
  9. function &instance( ) { //zwraca referencje
  10. static $view;
  11.  
  12. if( !isset( $view ) ) {
  13. $view = new view;
  14. }
  15. return $view;
  16. }
  17. }?>

Teraz jeśli chcesz użyć tej klasy:
  1. <?php
  2.  
  3. $view = &view::instance();
  4. $view->template->assign( 'as', 'as' );
  5. //itd
  6.  
  7. ?>


--------------------
Łukasz Dywicki
Independent Java and open source software consultant.
Blog - Java, OSGi, integracja oprogramowania..
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 20.07.2025 - 02:58