2015-06-02 10 views
0

好的,我想擴展PHP內的軍械庫,所以我一直在研究OO PHP。通過我的研究知識,我開始創建一個快速腳本,用於讀取CSV文件並輸出結果。OO PHP書寫腳本的可能改進

CSV類:

class CSV { 

    private $file; 

    public function __construct($filename, $mode) { 
     $this->file = fopen($filename, $mode); 
    } 

    public function endFile() { 
     return feof($this->file); 
    } 

    public function getCSV($mode) { 
     return fgetcsv($this->file, $mode); 
    } 

    public function close() { 
     fclose($this->file); 
    } 
} 

測試文件:

require('class.csv.php'); 

$csv = new CSV('postcodes.csv', 'r'); 

while(!$csv->endFile()) { 

    $postcode = $csv->getCSV(1024); 
    echo $postcode[0] . "<br />"; 

} 

$csv->close(); 

我只是想知道是否有...或者是什麼我可以做的關於面向對象方法的改進。這純粹是一個腳本,讓我把我學到的知識放在一起。我不是另一個'追隨人羣'的人,他們以面向對象的方式創建每個腳本,因爲他們'可以'。

我知道這是一個簡短的腳本,但我希望在繼續前確保我有正確的方法。

+6

這個問題似乎是脫離主題,因爲它是一個**代碼審查請求**。這更適合於[Code Review Stack Exchange站點](http://codereview.stackexchange.com)。在發佈之前,請務必閱讀他們的[FAQ](http://codereview.stackexchange.com/help),以確保您的問題符合他們的指導原則。 –

回答

0

我能想到的唯一可能的事情就是改進代碼是在你的主測試文件中少一些。使用面向對象代碼的一般想法是,你可以在類本身做很多事情,而在主文件中做得更少。

例如,假設您需要在代碼中再次執行測試文件中的測試。您需要再次完成重複的while循環。相反,也許寫一個方法來處理while循環正在執行的算法,然後調用它。之後,您可以再次調用該方法,這很簡單!

最好的部分是,您可以在類中的其他方法中使用類中的方法。像endFile()方法可以從另一種方法說$this->endFile()您呼叫$file以同樣的方式說$this->file

否則叫,我說你要找好!