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
alegorn
post
Post #2





Grupa: Zarejestrowani
Postów: 341
Pomógł: 40
Dołączył: 23.06.2009

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


bede sie czepiac. tyci (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)


  1. <?php
  2. class Page
  3. {
  4.    private $file;
  5.    protected $content;
  6.    
  7.    public function __construct($file)
  8.    {
  9.        $this->file = 'content/'.$file.'.txt';
  10.        if ( !( $this->content = file_get_contents($this->file)) ){
  11.            throw new Exception('The page you have entered is incorrect!');
  12.        }
  13.    }
  14.    
  15.  
  16.    private function getContent()
  17.    {    
  18.        return $this->content;        
  19.    }
  20.    
  21.    
  22.    public function viewPage()
  23.    {    
  24.            echo $this->getContent();
  25.    }
  26.    
  27. }
  28. ?>



ja bym zrobil te klase jak wyzej....

w twoim przykladzie jest taka linijka... :
  1. <?php
  2. if($this->loadPage()==TRUE)
  3. ?>


wytlumacz mi jak ma to zadzialac, skoro loadPage, w twoim przykladzie zrwaca string? to pierwsza uwaga.
2. staraj sie nie uzywac @, skoro bierzesz pod uwage error - oprogramuj go.
3. skoro w konstruktorze na sztywno ustawiasz konkretny plik, to po co leniwie zaczytujesz jego tresc... ? na upartego da sie, ale mam spore wawtpliwosci, wobec takiego rozwiazania.

Ten post edytował alegorn 29.06.2009, 09:04:19
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: 14.10.2025 - 23:16