Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Prosta klasa
Forum PHP.pl > Forum > Przedszkole
m3tt
Witam, od kilku dni ucze sie PHP OOP i chciałbym się doradzić czy robię to poprawnie, a jezeli nie to jakie błędy robię.

Oto kod:

  1. <?php
  2.  
  3. class bulderErrors
  4. {
  5.  
  6.  
  7.  
  8. function badFileType()
  9. {
  10. try{
  11. throw new Exception('Podano zla sciezke');
  12. }
  13. catch(Exception $badFileType){
  14. echo 'Wystapil blad: ', $badFileType->getMessage().'<b> w linii nr: '.$badFileType->getLine().'</b><br/>';
  15. }
  16.  
  17.  
  18. }
  19.  
  20.  
  21. }
  22. class buildHtml extends bulderErrors
  23.  
  24. {
  25.  
  26.  
  27. public $encoding;
  28. public $title;
  29.  
  30. public $scriptPath='';
  31.  
  32.  
  33. public function setEncoding($encoding)
  34.  
  35. {
  36. $this->encoding = $encoding;
  37.  
  38. }
  39. public function setTitle($title)
  40. {
  41. $this->title = $title;
  42. }
  43.  
  44. public function startBasics()
  45. {
  46. echo '<!DOCTYPE html
  47. PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  48. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  49. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  50. <head>
  51. <meta http-equiv="Content-Type" content="text/html; charset='.$this->encoding.'" />
  52. <title>'.$this->title.'</title>
  53. ';
  54. }
  55.  
  56.  
  57.  
  58. public function setJScript($scriptPath)
  59. {
  60. $this->scriptPath = $scriptPath;
  61.  
  62. }
  63.  
  64.  
  65.  
  66. public function insertJScript()
  67. {
  68. if(!file_exists($this->scriptPath))
  69. {
  70. $cf = explode(".",$this->scriptPath);
  71. if($cf[1] != 'js')
  72. {
  73. return $this->badFileType();
  74. }
  75. }else{
  76.  
  77. '<script type="text/javascript" src="'.$this->scriptPath.'"></script>';
  78. }
  79. }
  80.  
  81.  
  82.  
  83.  
  84. }
  85.  
  86.  
  87.  
  88.  
  89. ?>
CuteOne
1. w pierwszej klasie try catch jest potrzebne jak du..a marynie skoro warunek wstawiasz w drugiej klasie - zawsze zwróci błąd
2. przeczytaj to http://php.net/manual/en/language.exceptions.extending.php
3. najpierw ustawiasz $this->scriptPath a potem sprawdzasz czy jest prawidłowy? powinno być na odwrót smile.gif
4. szczerze to niw wygląda jak OOP raczej jak upakowanie funkcji strukturalnych w jednym miejscu
m3tt
Szczerze to mi powiedz co bys jeszcze dodał np do wstawiania skrpytu JS ? Klasa ma ułatwić pisanie kodu html wink.gif. Błędy poprawiłem
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.