2010-06-26 36 views
0

我想知道最好的方法(更快,更好)在PHP中構造代碼。你會如何構造,或者在PHP中構造代碼的最佳方式?

有些人將一個帶有函數,子類和var的主類保存到一個唯一的全局變量中,如$ modx CMS的情況。

你的結構技術是什麼?
你如何連接到你的數據庫?
你們都喜歡PHPCake這樣的PHP框架嗎?
你如何構造Plubic變量(配置)和私人變量(臨時或程序運行變量)?

我的問題的原因是,我不想靜態地開始編程,有一個強大的基礎。目前我正在使用ModX框架/ CMS進行編程。

注意:請每當您在答案上投票-1時證明其正確性!

由於提前 (對不起,我的英文不好)

+0

你的問題似乎很通用......無論如何,將所有東西存儲到一個全局變量中並不是一個好主意! – mexique1 2010-06-26 11:53:47

+0

通用性如何?我不知道每個人使用哪種結構來更好地使用這種方式並開始編程。 對不起,我的英語... – CuSS 2010-06-26 12:26:45

回答

2

更快更好不要走在一起。

更快

純PHP是更快,更兼容。你的發行量會更小。它是最容易維護的嗎?那麼,它可以是如果正確完成。像Drupal或Wordpress這樣的大型軟件項目表明,基於框架的項目比純PHP更容易維護。純PHP仍然有一些內置的類,但最終會回到函數。自動加載雖然不錯,但是更大的代碼庫仍然會帶來性能。

更好

基於框架的項目往往是更好的維護和使用的長期運行。它們由於其本質而較慢(如果包含路徑中有很多不同的路徑,或者包含非常有序的包含路徑,則自動載入會帶來性能影響)。它還提供了一個預設結構,以便其他人可以更快地瞭解和了解正在進行的操作。大多數Zend Framework項目看起來都是一樣的,所以您將有更好的機會找到正在運行的代碼段。性能受到影響,並且需要像操作碼緩存這樣的外部幫助器。

我的意見的

圍棋與 '好' 的選項:自動加載有一個框架。很多工作已經完成,因此您將在生產時間方面更快地走出困境。現在我建議Zend Framework加上Doctrine。它是最快的嗎?不,但更容易維護。

如果你需要平坦的速度,去核心PHP或自己的低級框架。 ZF,Code Igniter,symfony,與核心PHP相比,它們的性能都有所提升。

+0

+1非常好的答案,如果沒有人發佈更好的答案,我會接受;)有一件事你沒有回答...你喜歡什麼結構?使用普通函數或類函數運行?例如,你如何主張連接數據庫,以及如何威脅Plubic Vars(配置)和Private vars(臨時或程序運行變量)? – CuSS 2010-06-26 12:17:03

0

使用自動加載通過單身加載類和訪問實例:

class DB extends mysqli{ 
    private static $instance; 
    private function __construct(){ 
    parent::__construct(DB_HOST,DB_LOGIN,DB_PASS, DB_DB); 
    $this->set_charset("utf8"); 
    $this->autocommit(false); 
    } 

    public static function i() { 
    if (!self::$instance instanceof self){ 
     self::$instance = new self;   
    } 
    return self::$instance; 
    } 
} 

使用:

$res=DB::i()->query("SELECT * FROM whatever"); 

它會創建一個mysqli的實例,每當你訪問DB :: i()時,它都會返回該實例。

+0

所以,你使用類的創建一個管理你的代碼流? – CuSS 2010-06-26 11:27:32

0

我想你會對dependency injection 感興趣也使用自動加載:這是一個殺手級的功能。 對於數據庫,使用PDO,這是本機PHP數據庫層。

+0

我不知道PDO ......好,你如何構造你的變量? – CuSS 2010-06-26 12:21:55

+0

請注意在這裏投票-1的人:請每次在答案上投票-1時證明其正確性! – CuSS 2010-06-26 12:23:17

+0

我通常在靜態類中包裝我的變量,以提供一種namsepace。由於PHP 5.3命名空間是本地的,但許多託管公司可能仍然不支持它。 作爲實例,我有這個Page類(名字空間來存儲與頁面相關的所有變量),其中包含標題,關鍵字,描述,元機器人行爲以及css,js和rss所需的數組包括/顯示。原來非常有用! – Savageman 2010-06-26 12:44:11

0

使用框架比從頭開始編寫所有東西更好,因爲你需要的很多東西都已經完成了。

傾向於使用基於MVC模式的框架。這樣你的代碼將被分成模型,視圖和控制器。

  • 該模型是你把代碼用於管理數據(分貝,...)
  • 視圖是你把代碼用於用戶界面
  • 控制器是其中的邏輯你的應用程序去。
+0

良好的結構,結構是多少? – CuSS 2010-06-26 15:17:36

+0

是的,它是大多數框架的默認結構 – 2010-06-27 12:27:18