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 smile.gif

Pozdrawiam

Ten post edytował Joachim Peters 24.08.2007, 14:25:19
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 20.08.2025 - 17:29