Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Action czy Controler Główny, Jak sklasyfikować tą klasę oraz błąd
Turgon
post 16.02.2006, 15:46:05
Post #1





Grupa: Zarejestrowani
Postów: 800
Pomógł: 0
Dołączył: 26.11.2005
Skąd: Nowy Sącz

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


No zabrałem się do budowy szkieletu, który będę mógł potem używać w wielu aplikacjach.
Więc nieco Teori. Najpierw sobie zbudowałem strukture.
Katalog Lib - biblioteki i klasy sterujące.
Katalog Module - Moduły (łącznie z szablonami).

I teraz wymyśliłem sobie jak ładować tylko wybrane pliki, więc napisałem taką prostą klasę. I nie wiem jak to sklasifikować. Czy jako główny kontroler czy tylko jak Action?
(mówiłem, że dziwny problem) bo to zadecyduje o dalszych pracach.
  1. <?php
  2. class fileLoader
  3. {
  4. var $module;
  5. var $lib;
  6.  
  7. function getModule($module)
  8. {
  9. if(isset($module))
  10. {
  11. include_once ("module/"$module);
  12. }
  13. }
  14. function getLib($lib)
  15. {
  16. if(isset($lib))
  17. {
  18. include_once ("lib/"$lib);
  19. }
  20. }
  21. }
  22. ?>


Ten post edytował Turgon 16.02.2006, 16:31:57


--------------------
Jah Music Is On My Mind !
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
mike
post 16.02.2006, 15:47:36
Post #2





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Zamykam.

Proszę przesłać mi na PW odpowiedni temat wątku oraz link do zamkniętego tematu to otworzę.

edit: otwieram
Go to the top of the page
+Quote Post
Turgon
post 16.02.2006, 16:25:06
Post #3





Grupa: Zarejestrowani
Postów: 800
Pomógł: 0
Dołączył: 26.11.2005
Skąd: Nowy Sącz

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


Teraz debuger wykazuje błędy :
Cytat
Parse error: parse error, unexpected T_VARIABLE in C:\Documents and Settings\Administrator\Moje dokumenty\Projekty\Ice Island\lib\_debug_tmp.php on line 11

P.S.
Widzę, że jak przyjdzie co do czego, to na nikogo nie można liczyć...

Ten post edytował Turgon 16.02.2006, 17:00:43


--------------------
Jah Music Is On My Mind !
Go to the top of the page
+Quote Post
dr_bonzo
post 16.02.2006, 17:27:42
Post #4





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Cytat
Widzę, że jak przyjdzie co do czego, to na nikogo nie można liczyć...

No sorry -- ale jesli nie podajesz nawet kodu, ktory ci nie dziala, to jak ktos ma ci pomoc.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
Turgon
post 16.02.2006, 17:31:39
Post #5





Grupa: Zarejestrowani
Postów: 800
Pomógł: 0
Dołączył: 26.11.2005
Skąd: Nowy Sącz

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


Kod jest wyżej mad.gif .


--------------------
Jah Music Is On My Mind !
Go to the top of the page
+Quote Post
crash
post 16.02.2006, 17:38:42
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


  1. <?php
  2. "module/"$module
  3. ?>

Co to ma być? Może poczytaj o czymś takim jak operator łączenia ciągów?


--------------------
Go to the top of the page
+Quote Post
Turgon
post 16.02.2006, 17:39:48
Post #7





Grupa: Zarejestrowani
Postów: 800
Pomógł: 0
Dołączył: 26.11.2005
Skąd: Nowy Sącz

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


Eeee... Nie pamiętać smile.gif ...
A jednak znaleść biggrin.gif . Dobra teraz mam pytanie jak to zakfalifikować ? Chyba jako zwykłą klasę do Library. Zładuje się do Action gdzie będzie akcja Run, która uruchomi moduł news biggrin.gif ...
Napisałem, główną klasę odpowiadającą za akcje biggrin.gif.
  1. <?php
  2. class actionController
  3. {
  4. function run()
  5. {
  6. include ("./lib/fileLoader.class.php");
  7. include ("config.php");
  8. include ("./lib/MySQLquery.class.php")
  9. global $connect;
  10. $connect = mysql_connect($config['dbuser'],$config['dbpassword']);
  11. mysql_select_db($config['dbname']);
  12. global $mysql;
  13. $mysql = new MySQLquery;
  14. }
  15. function shutdown_MySQL()
  16. {
  17. mysql_close($connect);
  18. }
  19. }
  20. ?>


I tak się zastanawiam Czy ta klasa ma sens questionmark.gif

Ten post edytował Turgon 16.02.2006, 17:52:34


--------------------
Jah Music Is On My Mind !
Go to the top of the page
+Quote Post
bela
post 16.02.2006, 20:57:44
Post #8


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

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


Z tego co rozumiem to powinieneś zainteresować się wzorcem projektowym Front Controller.
Linka nie będzie, ale dobre materiały są w Blue Printach Suna i MSDN dot. ASP.NET


--------------------
Go to the top of the page
+Quote Post
Turgon
post 17.02.2006, 08:19:19
Post #9





Grupa: Zarejestrowani
Postów: 800
Pomógł: 0
Dołączył: 26.11.2005
Skąd: Nowy Sącz

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


Powiem szczerze, że nie za bardzo taki wzorzec mnie interesuje. Wolę zastosować nieco zmodyfikowany wzorzec MVC... I też rodzi się u mnie pytanie czy ta zmienna Globalna - obiekt będzie działać poza klasą questionmark.gif


--------------------
Jah Music Is On My Mind !
Go to the top of the page
+Quote Post
Przybek
post 17.02.2006, 10:43:58
Post #10





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 15.09.2002
Skąd: Nisko

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


Zmienna globalna zupełnie zaprzecza tu MVC i hermetyzacji :] Kolega chyba nie do końca rozumie na czym ma polegać projektowanie obiektowe i radził bym tą kwestię przemyśleć. Jeżeli już chcesz robić to tak jak zaczynasz, to potrzebujesz tu klasy do obsługi bazy danych i masz dwa wyjścia - albo tworzysz jej instancję w tym Twoim kontrolerze i przekazujesz jej referencje do akcji, albo stosujesz singleton. Pytanie mam jednak jeszcze jedno, zasadnicze, kto uświadomi mnie dlaczego kontroler akcji zawiera funkcje typu shutdown_MySQL()? ;]


--------------------
:: Przyb.net ::|:: Przyborowski.info ::
Go to the top of the page
+Quote Post
Turgon
post 17.02.2006, 13:35:20
Post #11





Grupa: Zarejestrowani
Postów: 800
Pomógł: 0
Dołączył: 26.11.2005
Skąd: Nowy Sącz

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


Tą funkcję zrobiłem dla zabawy smile.gif, żeby kończyła mySQLa i tyle. Dla mnie to znaczy programowanie obiektowe...
Inaczej niech mnie ktoś oświeci tongue.gif

Ten post edytował Turgon 17.02.2006, 13:44:54


--------------------
Jah Music Is On My Mind !
Go to the top of the page
+Quote Post
bela
post 17.02.2006, 14:20:54
Post #12


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

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


Cytat(Turgon @ 2006-02-17 09:19:19)
Powiem szczerze, że nie za bardzo taki wzorzec mnie interesuje. Wolę zastosować nieco zmodyfikowany wzorzec MVC...

Eee? ;]
Wzorce projektowe nie wykluczają się winksmiley.jpg Co więcej, akurat w tym przykładzie, można doskonale je ze sobą połączyć.
Radzę poczytać najpierw, a nie od razu negetywnie podchodzić.


--------------------
Go to the top of the page
+Quote Post
Turgon
post 17.02.2006, 14:23:41
Post #13





Grupa: Zarejestrowani
Postów: 800
Pomógł: 0
Dołączył: 26.11.2005
Skąd: Nowy Sącz

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


Klase nieco przerobiłem (nie wiem czy się nie pomyliłem) dzięki poradom Riklaunima smile.gif . Nieco czytałem o MVC ... Nieco wyjaśnił mi ideę obiektowości smile.gif :
Ta klasa jest w sumie dosyć prosta i powiecie, że nie potrzebna, ale po prostu większość operacji chce rozbić na mniejsze kawałki, żeby ułatwić sobie w przyszłości rozbudowę i modernizację.
  1. <?php
  2. class adminController
  3. {
  4. var $module_name;
  5. var $config_name;
  6.  
  7. function adminController()
  8. {
  9. include ("./config.php");
  10. include ("./lib/actionController.class.php");
  11. include ("./lib/fileLoader.class.php");
  12. $this->services = new actionController;
  13. $this->moduleLoading = new fileLoader;
  14. }
  15. function generateModulePanel($admin_page,$module_name,$config_name)
  16. {
  17. $this->services->run();
  18. $this->moduleLoading->getModule($module_name);
  19. $this->moduleLoading->getLib($config_name);
  20.  
  21. }
  22. }
  23. ?>

Oraz druga biggrin.gif
  1. <?php
  2. class actionController
  3. {
  4. function actionController()
  5. {
  6. include ("./config.php");
  7. include ("./lib/MySQLquery.class.php")
  8. $this->mysql = new MySQLquery;
  9. }
  10. function run()
  11. {
  12. $connect = mysql_connect($config['dbuser'],$config['dbpassword']
  13. mysql_select_db($config['dbname']);
  14. }
  15. function shutdown_MySQL()
  16. {
  17. mysql_close($connect);
  18. }
  19. }
  20. ?>


Czy dobrze to napisałem ? sadsmiley02.gif

Ten post edytował Turgon 17.02.2006, 19:44:25


--------------------
Jah Music Is On My Mind !
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: 18.07.2025 - 01:42