PHP :MVC的框架模式和Composer

PHP :MVC的框架模式和Composer

今天的協同開始裏MVC已經是廣爲達成共識,就像和平與發展是21世紀的主題,之前的代碼都是層與層區別的不明顯,html和PHP混合開發,效率不高,1999年,sun公司的J2EE,是最早最完整的MVC模式。

優點:

  • 多個view共享一個Model。View負責負責格式化並把他們呈現給用戶,業務邏輯和表示層分離,同一個Model可以被不同的View重用,大大提高了代碼的可重用性。
  • Controller是高獨立內聚的對象,與Model與View保持獨立。
  • Controller提高了應用程序的靈活性和可配置性。

MVC模式強調職責分離,帶來了一個現代軟件工程要求的重要特徵:可測試性,基於MVC的程序良好的職責分離設計下,各個部分可獨立進行單元測試,利於自動化測試,集成等諸多優點。

缺點:

  • MVC應用會產生很多文件,對於PHP這種不能常駐內存的語言來說,大量的文件加載和變量造成了大量開銷。
  • 初學的程序員不容易理解。

Composer,來實現和引入第三方類庫,並利用其實現依賴管理和自動升級。

Composer解決的問題:

  • 你有一個依賴N多庫的項目
  • 這些庫中一些項目又依賴於其他的庫
  • 你聲明你所依賴的庫
  • Composer找出那些包那個版本將會被安裝

安裝及使用

//安裝命令
curl -sS https://getcomposer.org/installer | php

//設置全局變量
mv composer.phar /usr/local/bin/composer

Composer常用命令:

// 從當前目錄讀取composer.json文件,處理了依賴關係,並把其安裝到vender目錄下,如果當前目錄下,如果當前存在composer.lock文件,他會從此文件讀取依賴版本
composer install 

//獲取依賴的最新版本,並且升級composer.lock文件
composer update

//打印自動加載索引,某些情況下你需要更新autoloader,例如在包中加入了一個新類。
composer dump-autoload

加載方式:

  • PSR-0

  • PSR-4

  • class-map

  • 直接包含file

      {
          "autoload": {
              "psr-4": {
                  "Monolog\\": "src/",
                  "Vendor\\Namespace\\": ""
              }
          }
      }
    

composer 加載原理:key和value就定義了namespace以及其對應的目錄映射。 當試圖自動記載 Vendor\\Namespace\\類的使用時,會去尋找src/這個文件,如果它存在自動加載,要注意的是此時Vendor\\Namespace\\並不會出現在文件路徑中。

而composer.json這樣的配置會被Composer 轉換成 namespace 與文件目錄的MAP形式,並存在vender/composer/autoload_psr4.php文件中。所以如果你安裝的某個擴展自動加載是PSR-4形式,你可以在autoload_psr4.php找到他的真實路徑。

Composer優點:

  • 更加集中管理\自動加載類庫
  • 統一管理第三方類庫,支持升級擴展

簡說CI框架

CI框架的優點:

單入口:使得每一個請求都需要經過對這個入口文件處理,文件由此進行,Controller層的管理變得輕而易舉,開發者可以在這個入口實現很多針對Controller層甚至View層的統一管理,比如設置字符集,CSRF過濾等。

MVC朝着輕量化、API化發展了(主要JavaScript+Json形式)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章