Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: klasa do oceny
Forum PHP.pl > Inne > Oceny
karis
jestem początkujący w OOP, ale udało mi się napisać własną klasę
proszę o ocenę, czy dobrze to zrobiłem, co mogę poprawić, co dodać etc.

  1. <?php
  2. class File
  3. {
  4.     private $plik;
  5.     private $open;
  6.    
  7.     function __construct()
  8.     {
  9.        return 0;
  10.     }
  11.     public function get($plik)
  12.     {
  13.         $this->plik=$plik;
  14.         $openFile = file_get_contents($plik);
  15.         $this->open = $openFile;
  16.         if(!$openFile)
  17.         {
  18.             return false;
  19.         }
  20.         else
  21.         {
  22.             return true;
  23.         }
  24.     }
  25.     public function save($dane)
  26.     {
  27.         $op = $this->get($this->plik);
  28.         if(!$op)
  29.         {
  30.             return false;
  31.         }
  32.         else
  33.         {
  34.             $dane = $dane."\n".$this->open;
  35.             $save = file_put_contents($this->plik, $dane);
  36.             if($save)
  37.             {
  38.                
  39.                 return true;
  40.             }
  41.             else
  42.             {
  43.                
  44.                 return false;
  45.             }
  46.         }
  47.     }
  48.     public function show()
  49.     {
  50.         echo $this->open;
  51.         return true;
  52.     }
  53. }
  54. $plik = new File();
  55. $plik->get('123.php');
  56. $plik->save('kupsko hahahahha');
  57. $plik->show();
  58.  
  59.  
  60.  
  61.  
  62. ?>
ayeo
Witam!

Taka jest specyfika tego działu, że jestem zmuszony sobie pomarudzić smile.gif Mieszasz nazwy polskie z angielskimi co jest niby detalem, ale to bardzo zły nawyk. Użycie konstruktora w taki sposób jest całkowicie pozbawione sensu.
  1. <?php
  2. $save = file_put_contents($this->plik, $dane);
  3.             if($save)
  4.             {
  5.                
  6.                 return true;
  7.             }
  8.             else
  9.             {
  10.                
  11.                 return false;
  12.             }
  13. ?>

Lepiej po prostu:
  1. <?php
  2. return file_put_contents($this->plik, $dane);
  3. ?>


Nazwy metod są mylące. Reasumując nie jest tragicznie winksmiley.jpg

Pozdrawiam!
karis
dzięki smile.gif

skoro już zacząłem, to może powiecie mi jak udoskonalić tą klasę

  1. <?php
  2. class Tagi
  3. {
  4.    
  5.    private $nazwaTagu;
  6.    private $zawartosc;
  7.    
  8.    public function dane($zawartosc)
  9.    {
  10.         if(eregi('http://', $zawartosc))
  11.         {
  12.             //pobieranie adresu
  13.             $zdalny = file_get_contents($zawartosc);
  14.             $this->zawartosc = $zdalny;
  15.         }
  16.         else
  17.         {
  18.             $this->zawartosc = $zawartosc;
  19.         }
  20.    }
  21.    
  22.    public function pobierzTag($nazwaTagu)
  23.    {
  24.         $this->nazwaTagu = $nazwaTagu;
  25.         preg_match_all('%<'.$nazwaTagu.' (.*)>%', $this->zawartosc, $wynik);
  26.        
  27.         $wynik = $wynik[0];
  28.        
  29.         return $wynik;
  30.        
  31.    }
  32.    
  33.    function __destruct()
  34.    {
  35.         unset($wynik);
  36.         unset($zdalny);
  37.    }
  38.    
  39. }
  40.  
  41. $tag = new Tagi();
  42. $tag->dane('http://farby.info.pl');
  43. $wynik = $tag->pobierzTag('img');
  44.  
  45. print_r($wynik);
  46. ?>


żeby pobierała tylko te tagi, które zostały zdefinioowane, oraz żeby brało pod uwage taki otwarte lub zamknięte
ayeo
Witam!

Destruktor niszczy zmienne których nie ma. Eregi to zło, korzystaj preg. Nie rozumiem o co chodzi ze zdefiniowanymi tagami, ale wydaje mi się, że to kwestia regexpa, a nie OOP.

Pozdrawiam!
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.