從CakePHP 1.3升級到2.5,cakephp1.3升級2.5_PHP教程

來源:互聯網
上載者:User

從CakePHP 1.3升級到2.5,cakephp1.3升級2.5


從CakePHP 1.3升級到2.5

摘要:最近把一個CakePHP 1.3的項目升級到了2.x,當然就用最新的版本2.5.3了,結果基本滿意。本文記錄了升級的過程,包括使用的工具,遇到的問題和相應的解決方案。

這篇文章涉及的內容要求至少有CakePHP中級水平,如果你是剛開始使用CakePHP,建議先不要作這樣的嘗試,否則遇到問題都不知道怎麼解決。

目錄

1. 為什麼要升級

2. 項目概況

3. 使用的工具

4. 升級的過程

5. 升級之後遇到的問題及解決方案

A. 參考資料

1. 為什麼要升級

升級到最新版本有很多好處,可以得到最新的更新和功能,可以使用DebugKit這樣的調試工具,可以使用View Block方便地把CSS和JavaScript放在頁面中你希望的地方,而不再痛苦地受限於舊的方式,等等。View Block一直是我最希望使用的特性。

2. 項目概況

這個項目的開發大致起始於2012年底,我從2013年中開始參與,到2014年中,所有使用者要求的功能基本都完成了。我參與了大概1年左右,只是利用業餘時間進行。代碼一開始是抄自於一個CakePHP 1.3的項目,而沒有使用當時最新的2.x版本,這也使得許多開發工作不能利用架構最新的特性和工具,延長了開發週期。可以說,這個項目從開始就做了錯誤的選擇。先後參與的開發人員前後有6個人之多,多數是臨時抓來的,大部分人做一段時間之後就會離開,有些功能甚至沒有完成就走人了。而且大家對CakePHP這個架構沒有深入的瞭解,導致這個項目的代碼沒有一致性,也缺乏統一的計劃、架構和規範,沒有單元測試。總之,項目的代碼品質是不能令人滿意的。這些恐怕是大部分業餘項目難以避免的問題。

幸好,這個項目不算特別複雜,計有:

  • 資料庫有36張表
  • 19個控制器(Controller)
  • 33個模型(Model)
  • 63個視圖(View)
  • 2個外掛程式(Plugin)
  • 當然還有其他一些東西

通過這些資料可以看出這個項目的規模,應該說是個中小型網站吧。

3. 使用的工具

升級只使用了2個工具,首先是官方的Upgrade Shell,以及DerEuroMark的Upgrade Plugin。

4. 升級的過程

真正動手升級之前我花了一些時間閱讀參考資料中列出的文檔,實際的升級過程前後總共花了4天時間,不過這裡面相當一部分時間用於升級後的測試、以及尋找解決問題的方法。我畢竟從1年前才開始真正使用PHP和CakePHP來開發實際使用的網站,而且只是利用業餘時間,所以時間有限,很多東西也都是邊做邊摸索學習,主要目標是要完成使用者需求所要求的功能,來不及瞭解CakePHP架構的各個方面。如果你有相應的經驗,或者有解決下面所涉及問題的這些知識,這個過程會快許多。

4.1 備份

首先,確保升級之前,應用程式運行良好,做好代碼和資料的備份。如果沒有備份,請就此打住!!!

我使用Git(TortoiseGit)做源碼控制,這讓我可以隨時回到過去某一個時間點。資料庫使用的是MySQL,升級之前也要做好備份。如果升級過程出了問題,進行不下去,備份讓你可以恢複到開始升級之前的狀態;如果沒有備份,那你可就進退維穀了。

4.2 更新CakePHP的核心庫到2.x

這個項目在升級前的目錄結構,如所示,

圖中,cake為CakePHP 1.3的核心庫,app是應用程式代碼。

下載最新的CakePHP,我用的是2.5.3,開啟壓縮包,如所示。

圖中的lib目錄就是CakePHP的核心庫,把這個lib目錄拷貝到根目錄下,然後刪除1.3的cake目錄,得到如所示的目錄結構。

圖中的lib\Cake目錄就是CakePHP 2.x的核心庫。

4.3 準備升級工具Upgrade Shell

Upgrade Shell是CakePHP核心的一部分,位於lib\Cake\Console\目錄下,只需確保能夠運行CakePHP Console可執行檔就可以了,這可以參考CakePHP Console的文檔。如所示,

圖中的cake是*nix下的可執行檔,cake.bat是Windows下的可執行檔。我採用的做法,是參考了Upgrade Shell的文檔,把lib\Cake\Console\目錄拷貝到app目錄下,這樣只是執行的命令列路徑有所不同,結果是一樣的,如所示。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.