Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [klasa] Errors w PHP5
Forum PHP.pl > Forum > PHP
KaweS
klasa stworzona, by przechowywac wszystkie bledy razem. na tyle prosta, ze chyba nie wymaga komentarzy kodu...
powiedzcie co myslicie o klasie z samymi statycznymi metodami i wlasciwosciami? zero instancji
  1. <?php
  2.  
  3. class Errors implements iErrors
  4. {
  5. private static $errors = array ();
  6. private static $errorsNum = 0;
  7.  
  8.  
  9.  
  10. private function __construct(){}
  11.  
  12. public static function newError($message, $file, $line, $type = _ERROR_GENERAL_)
  13. {
  14. self::$errors[++self::$errorsNum] = array ('msg' => $message, 'file' => $file, 'line' => $line, 'type' => $type);
  15. return self::$errorsNum;
  16. }
  17.  
  18. public static function getLast($type = null)
  19. {
  20. if (!$type)
  21. return self::$errors[self::$errorsNum];
  22.  
  23. for ($i = self::$errorsNum; $i > 0; $i--)
  24. if (self::$errors[$i]['type'] == $type)
  25. return self::$errors[$i];
  26.  
  27. return null;
  28. }
  29.  
  30. public static function getAll($type = null)
  31. {
  32. if (self::$errorsNum > 0)
  33. {
  34.  
  35. $errorsString = '';
  36. foreach (self::$errors as $key => $error)
  37. if (!$type || $error['type'] == $type)
  38. $errorsString .= "\nError " . $key . ' type of ' . $error['type'] . ' in ' . $error['file'] . ' on line ' . $error['line'] . ":\n\t" . $error['msg'] . "\n";
  39.  
  40. return $errorsString;
  41. }
  42. else
  43. return 'No errors has occurred.';
  44. }
  45.  
  46. public static function get($id = null)
  47. {
  48. if (!$id)
  49. return self::$errors[self::$errorsNum];
  50. elseif (isset (self::$errors[$id]))
  51. return self::$errors[$id];
  52. else
  53. return null;
  54. }
  55.  
  56. public static function numErrors()
  57. {
  58. return self::$errorsNum;
  59. }
  60. }
  61.  
  62. ?>
devnul
pozwolę sobie stwierdzić że mało to odkrywcze. klasa tak naprawdę nie robi nic (całość do napisania w jakieś 30 sekund), brak np automatycznej integracji z nieobsłużonymi wyjątkami i błędami plutymi przez parser. imho bezużyteczne to to samo w sobie
KaweS
jest mi niezmiernie milo, ze sobie pozwoliles stwierdzic, ale pytanie bylo o cos innego...
co do samej klasy, to zawiera tyle ile potrzebowalem, a wrzucilem ja tu dla przykladu i opinii o 'statycznej klasie'
devnul
późno/wcześnie było jak odpisywałem - musiałem niezbyt dokładnie doczytać temat - wybacz.

Odniosę się w takim razie do Twojego pytania.

Same statyczne metody to dobre rozwiązanie kiedy chcesz zapewnić pewną hermetyzację grupie funkcji a jednocześnie pozwolić im na prace na wspólnych danych mająć pewność że nie zostaną przypadkiem naruszone z zewnątrz. pozwala to uniknąć konfliktów (w wypadku nie użycia w tym celu klas a zwyklłych funkcji) i ma tą przewagę nad obiektem że dostęp do tych elementów jest bezproblemowy w obrębie całego kodu.

IMHO klasy z samymi metodami statycznymi to bardzo pożyteczna rzecz - niejednokrotnie sam z tego korzystam
KaweS
to chcialem uslyszec ;ppp
dzieki

jeszcze jakies komentarze??
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.