簡體   English   中英

您將如何構造PHP或構造代碼的最佳方法?

[英]How would you structure, or the best way to structure the code in PHP?

我想知道最好的方法(更快更好)來構造PHP中的代碼。

有些人將帶有函數,子類和var的Master Class保存到唯一的全局變量中,例如$ modx CMS case。

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

我提出問題的原因是,我不會以堅實的基礎開始進行靜態編程。 目前,我正在使用ModX框架/ CMS進行編程。

注意:每次對答案投票-1時,請說明理由!

在此先感謝(對不起,我的英語不好)

更快更好地不能在一起。

快點

純PHP更快,更兼容。 您的發行版將會更小。 它最容易維護嗎? 好吧,如果做得正確就可以。 大型軟件項目(例如Drupal或Wordpress)表明,基於框架的項目並不比純PHP易於維護。 純PHP仍然具有一些內置類,但是最終它們會返回功能。 自動加載是不錯的選擇,但是較大的代碼庫仍然會降低性能。

更好

從長遠來看,基於框架的項目傾向於更好地維護和使用。 由於其性質,它們速度較慢(如果包含路徑中包含許多不同路徑,或者包含路徑排列不正確,則自動加載會降低性能)。 它還提供了一個預設的結構,以便其他人可以跳入並更快地了解發生了什么。 大多數Zend Framework項目看起來都是相同的,因此您將更有機會找到正在運行的代碼段。 性能受到影響,並且需要諸如操作碼緩存之類的外部助手。

我的意見

選擇“更好”選項:具有自動加載功能的框架。 已經為您完成了許多工作,因此您可以在生產時間方面更快地完成任務。 現在,我建議使用Zend框架和原則。 是最快的嗎? 不,但是更容易維護。

如果需要穩定的速度,請使用核心PHP或自帶的低級框架。 ZF,Code Igniter,symfony,與核心PHP相比,它們都對性能產生了影響。

使用自動加載來加載類並通過單例訪問實例:

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()時,它將返回該實例。

我想您會對依賴注入感興趣,也可以使用自動加載功能:這是一個殺手級功能。 對於數據庫,請使用PDO,這是本地PHP數據庫層。

與從頭開始編寫所有內容相比,使用框架是一種更好的方法,因為您已經完成了許多您需要的工作。

最好使用基於MVC模式的框架 這樣,您的代碼將被分為模型,視圖和控制器。

  • 在該模型中,您放置了用於管理數據的代碼(db,...)
  • 該視圖是您放置用戶界面代碼的位置
  • 控制器是您應用程序邏輯的去向。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM