Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> OOP -> czy idę w dobrym kierunku
PawelC
post
Post #1





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


Bawię się cały czas OOP, ponieważ nudzi mnie używanie gotowych frameworków, a tak to przynajmniej się człowiek czegoś nauczy. I mam pytanie, czy idę w dobrym kierunku w OOP, dla przykładu podaje próbkę działającego kodu:
  1. <?php
  2. class content
  3. {
  4.    
  5.    public function getContent()
  6.    {
  7.        $tablica=file('tekst.txt');
  8.        foreach($tablica as $key)
  9.        {
  10.            $zdania[]=$key;
  11.        }
  12.        return $this->zdania=$zdania;
  13.    }
  14.    
  15.    
  16.    public function shuffle()
  17.    {
  18.        shuffle($this->zdania);
  19.        $wylosowane=$this->zdania;
  20.        return $this->wylosowane=$wylosowane[0];
  21.    }
  22.    
  23.    public function view()
  24.    {
  25.        return '<h1>'.$this->wylosowane.'<h1>';
  26.    }
  27. }
  28. $new=new content;
  29. $new->getContent();
  30. $new->shuffle();
  31. echo $new->view();
  32. ?>

Ta klasa ma za zadanie wylosowanie jednego zdania, spośród 3tys zdań i wywalenie go na ekran w tagu h1

Ten post edytował ExPlOiT 21.06.2009, 02:23:47
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
gcdreak
post
Post #2





Grupa: Zarejestrowani
Postów: 365
Pomógł: 8
Dołączył: 16.12.2008

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


Twój kod nie jest zły, ale ja bym to zrobił mniej więcej tak:
Kod
            class content
             {
                
                public $zdania;
                public $tablica;
                public $wylosowane;
                
                public function __construct($file){
                    $this->tablica = file($file);    
                }
                
                public function getContent(){
                    foreach($this->tablica as $key)
                    {
                        $zdania[] = $key;
                    }
                    return $this->zdania = $zdania;
                }
                
                
                public function shuffle(){
                    shuffle($this->zdania);
                    $wylosowane = $this->zdania;
                    return $this->wylosowane = $wylosowane[0];
                }
                
                public function view(){
                       $this->getContent();
                       $this->shuffle();
                    return '<h1>'.$this->wylosowane.'<h1>';
                }
             }
             $new=new content('words.txt');
             echo $new->view();


Ponad to można by jeszcze wczytać zawartośc pliku do zmiennej i potem za pomocą explode() podzielić to na zdania (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Zrobiłem mały przykład (tak na szybko dlatego nazwy atrybutów są trochę pomieszane):
Kod
            class content
            {
              
               public $zdania;
               public $tablica;
               public $wylosowane;
              
               public function __construct($file){
                    $this->tablica = file_get_contents($file);
               }
              
               public function getContent(){
                  
               }
              
               public function explode(){
                       $zdania = explode('. ', $this->tablica);
                    return $this->zdania = $zdania;
               }
              
               public function shuffle(){
                   shuffle($this->zdania);
                   $wylosowane = $this->zdania;
                   return $this->wylosowane = $wylosowane[0];
               }
              
              
               public function view(){
                   $this->explode();
                      $this->shuffle();
                   return '<h1>'.$this->wylosowane.'<h1>';
               }
            }
            $new=new content('words.txt');
            echo $new->view();


Ten post edytował gcdreak 21.06.2009, 07:28:42
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 - 03:41