Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [klasa]Modules
Joachim Peters
post
Post #1





Grupa: Zarejestrowani
Postów: 196
Pomógł: 2
Dołączył: 1.03.2006

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


Chciałbym się Wam spytać, jak podoba się wam moja klasa do obsługi modułów, co w niej zmienić itd.
Zapewne nie ma się czym chwalić, ale głównie chodzi mi o sugestie, propozycję i opinię!

  1. <?php
  2.  
  3. class Modules {
  4.  private $moduleType;
  5.  private $defaultUserModule = 'news';
  6. private $defaultAdminModule = 'stats';
  7.  
  8. /**
  9.  * Sprawdza czy moduł istnieje
  10.  */
  11. private function checkModuleExists($moduleName) {
  12. if(file_exists('./modules/'.$this->moduleType.$moduleName.'.php')) {
  13. return true;
  14. }
  15.  
  16. return false;
  17. }
  18.  
  19. /**
  20.  * Uruchamia poszczególne moduły. 
  21.  */
  22. public function run($moduleName = null, $admin = false) {
  23.  $moduleName = strtolower($moduleName);
  24.  
  25. if(strlen($moduleName) < 4 || strlen($moduleName) > 15) {
  26. throw new Exception('Nazwa modułu jest za krótka lub za długa.');
  27. }
  28.  
  29. $this->moduleType = ($admin) ? 'admin/' : 'user/';
  30.  
  31. if($moduleName) {
  32. if($this->checkModuleExists($moduleName)) {
  33. include_once('./modules/'.$this->moduleType.basename($moduleName.'.php'));
  34.  
  35. return;
  36. }
  37. } 
  38.  
  39. if($this->checkModuleExists(($admin) ? $this->defaultAdminModule : $this->defaultUserModule)) {
  40. include_once('./modules/'.$this->moduleType.basename(($admin) ? $this->defaultAdminModule : $this->defaultUserModule.'.php'));
  41. } else {
  42. throw new Exception('Nie można załadować żadnego modułu');
  43. }
  44. }
  45. }
  46.  
  47. ?>


Główne założenie klasy to bezpieczne wczytywanie plików (modułów). Nazwa modułu jest pobierana z adresu.
Chętnie przyjmę krytykę, lecz bez przesady bo to dopiero moje początki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Pozdrawiam

Ten post edytował Joachim Peters 24.08.2007, 14:25:19
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
menic
post
Post #2





Grupa: Zarejestrowani
Postów: 493
Pomógł: 0
Dołączył: 14.06.2003
Skąd: Tomaszów Lubelski/Rzeszów

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


No wybacz, ale nie wiele tu oceniac. Raptem pare instrukcji... I po co ta "blokada" na dlugosc nazwy?
Go to the top of the page
+Quote Post
Joachim Peters
post
Post #3





Grupa: Zarejestrowani
Postów: 196
Pomógł: 2
Dołączył: 1.03.2006

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


Tylko ten dział pasuje aby spytać się Was o sugestie, wiem, że nie ma tu co oceniać ;P
Go to the top of the page
+Quote Post
bełdzio
post
Post #4





Grupa: Zarejestrowani
Postów: 690
Pomógł: 81
Dołączył: 6.04.2005
Skąd: Szczecin

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


w checkModuleExists zamiast warunku możesz dać po prostu return file_exists
Go to the top of the page
+Quote Post
Speedy
post
Post #5





Grupa: Zarejestrowani
Postów: 651
Pomógł: 28
Dołączył: 4.12.2004

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


Cytat(bełdzio @ 25.08.2007, 10:15:07 ) *
w checkModuleExists zamiast warunku możesz dać po prostu return file_exists


Ja bym w ogóle wywalił tę metodę, bo nie robi ona niczego poza wywołaniem funkcji file_exsits(). Jest to dodawanie niepotrzebnego kodu.
Go to the top of the page
+Quote Post
Joachim Peters
post
Post #6





Grupa: Zarejestrowani
Postów: 196
Pomógł: 2
Dołączył: 1.03.2006

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


Zrobiłem to dla przejrzystości, żebym nie musiał ciągle ścieżki pisać (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował Joachim Peters 25.08.2007, 16:44:18
Go to the top of the page
+Quote Post
Moli
post
Post #7





Grupa: Zarejestrowani
Postów: 662
Pomógł: 45
Dołączył: 26.03.2007
Skąd: Warszawa

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


No ale mogłeś dać tylko
  1. <?php
  2. return file_exists('./modules/'.$this->moduleType.$moduleName.'.php') ;
  3. ?>
Go to the top of the page
+Quote Post

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: 22.08.2025 - 14:15