cakephp 1.3 -> 2.1 記錄

edited 十月 2013 in CakePHP
基本上很多東西都改變了,所以升級保證很痛...

雖然有這篇:
http://book.cakephp.org/2.0/en/appendices/2-1-migration-guide.html

但是實際上還有很多手工要做。

1. 先是透過 upgrade shell 調整目錄結構與檔名:
http://book.cakephp.org/2.0/en/console-and-shells/upgrade-shell.html

2. 下面幾個檔案需要參考新版本調整,我是直接 bake 一個空的專案複製過來
Config/core.php
Config/database.php
Config/routes.php
Config/bootstrap.php
webroot/index.php

3. 其實還改了很多東西,不過沒有一一記錄,印象最深刻的就是 Auth ...

3.1 $this->Auth->userModel 與 $this->Auth->userScope 要改成
$this->Auth->authenticate = array(
                'Form' => array(
                    'userModel' => 'Member',
                    'scope' => array('Member.user_status' => 'Y'),
                )
            );

3.2 $this->Auth->authorize = 'actions'; 要改成
$this->Auth->authorize = array(
                'Actions'
            );

3.3 以前 Session 儲存是以使用的 Model 為主,現在好像一律改為 User ,所以原本 $this->Session->read('Auth.Member'); 要改為 $this->Session->read('Auth.User'); 才拿的到資料

3.4 以前會自動抓 login() 丟出的資料,現在需要手動加入
if ($this->request->is('post')) {
            if ($this->Auth->login()) {
                return $this->redirect($this->Auth->redirect());
            } else {
                $this->Session->setFlash('帳號或密碼有錯誤!');
            }
        }

3.5 因為 3.3 ,需要修改原有 aros 資料表的資料
UPDATE aros SET model = 'User' WHERE model = 'Member'

原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=6549
Sign In or Register to comment.