Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Początki z OOP :F
margyw
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 26.02.2009

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


Witam,

miałem kilku letnią przerwę w php i teraz, kiedy znowu mnie wciągnęło, za żadne skarby nie potrafię ogarnąć obiektówki (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif) .

Chciałbym, żebyście sprawdzili tą klasę i w ogóle naprowadzili mnie na dobrą drogę, czy tak powinno się używać OOP. Jako że uczyłem się strukturalnie to teraz trudno mi się odzwyczaić (IMG:http://forum.php.pl/style_emoticons/default/sciana.gif) . Jest to prosty kodzik, który ma wyświetlać plik, który mu zapodam. Pisałem to pod malutki homepage, więc użyłem go do wyświetlania podstron. A więc:

  1. <?php
  2. class Page
  3. {
  4.    private $file;
  5.    
  6.    
  7.    public function __construct($file)
  8.    {
  9.        $this->file = 'content/'.$file.'.txt';
  10.    }
  11.    
  12.  
  13.    private function loadPage()
  14.    {    
  15.        $content = file($this->file);
  16.        $content = join('', $content);
  17.        
  18.        return $content;        
  19.    }
  20.    
  21.    
  22.    private function checkPage()
  23.    {
  24.        if(file_exists($this->file)) { return TRUE; } else { return FALSE; }    
  25.    }
  26.    
  27.    
  28.    public function viewPage()
  29.    {    
  30.        if($this->checkPage()==TRUE)
  31.        {
  32.            echo $this->loadPage();            
  33.        }else{    
  34.            echo '<h2>The page you have entered is incorrect!</h2>';    
  35.        }    
  36.    }
  37.    
  38. }
  39. ?>


  1. <?php
  2. if(isset($_GET['go']))
  3.    {                        
  4.        $page = new Page($_GET['go']);
  5.        $page->viewPage();                            
  6.    }else{                        
  7.        $page = new Page('main');
  8.        $page->viewPage();                        
  9.    }
  10. ?>


Tak więc, jest to poprawne użycie obiektówki, czy taki kod mija się z celem? Bo ja już sam nie wiem, może kiedyś to pojmę (IMG:http://forum.php.pl/style_emoticons/default/dry.gif)

Z góry dzięki, pozdrawiam.

Ten post edytował margyw 28.06.2009, 23:56:46
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
margyw
post
Post #2





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 26.02.2009

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


Jeszcze mnie nurtuje pewna rzecz, a mianowicie podstrony.

Czy sposób, który pokazałem wyżej, tzn.

  1. <?php
  2. if(isset($_GET['go']))
  3.    {                        
  4.        $page = new Page($_GET['go']);
  5.        $page->viewPage();                            
  6.    }else{                        
  7.        $page = new Page('main');
  8.        $page->viewPage();                        
  9.    }
  10. ?>


jest poprawny, czy istnieje jakaś inna forma, którą wykorzystujecie pisząc obiektywnie?

Przypuśćmy, że robiłbym PA, i np. miałbym klasę z funkcjami:

  1. <?php
  2. class Admin()
  3. {
  4.  
  5.   public function add()
  6.      {
  7.           ...........
  8.      }
  9.  
  10.   public function del()
  11.      {
  12.           ............
  13.      }
  14.  
  15. }
  16. ?>


to wtedy poprawne, według zasad obiektowości, będzie wykorzystanie jej jak w w/w przykładzie?:

  1. <?php
  2. if(isset($_GET['co']))
  3.    if($_GET['co']=='add')
  4.        {
  5.            $art = new Admin();
  6.            $art->add();
  7.        }elseif($_GET['co']=='del'){
  8.            $art = new Admin();
  9.            $art->del();
  10.        }
  11.        ....................
  12. }
  13. ?>


Nie zwracajcie zbytnio uwagi na kod, można by również wykorzystać switch'a, ale nie o to chodzi, tylko o sam fakt, czy tak jest poprawnie wg, zasad OOP.

W ogóle przepraszam za tak banalne pytania, ale jakoś zagadnienie OOP nie może do mnie trafić i nie potrafię tego pogodzić z tym co już umiem.

Wydaje mi się, że za dużo strukturalności wtrącam w kod i dlatego przestaje to być stricte obiektowym kodem. Nie wiem już sam (IMG:http://forum.php.pl/style_emoticons/default/sciana.gif) .

Ten post edytował margyw 30.06.2009, 00:01:07
Go to the top of the page
+Quote Post

Posty w temacie


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: 16.10.2025 - 15:04