標籤:style class blog code http ext
昨天開始寫,使用者密碼修改,把原來的登入 註冊調整了下。中間有些細節。
封裝擷取session中使用者資訊的方法的時候,我猶豫了很久。
class IndexBaseController extends Comm{ protected $userInfo; //session 判斷 前置函數 public function init() { $session = $this->instance(‘Session‘); $userInfo = $session->get(‘index_userInfo‘); if(empty($userInfo)){ $this->redirect(‘/Login/login‘); }else{
//這個if我猶豫了 if($this->userInfo != $userInfo){ $this->userInfo = &$userInfo; } } }}
實際上我對PHP 記憶體回收機制還是不清晰,我不知道userInfo什麼時候會被回收、 一開始直接 $this->userInfo = &$userInfo;
寫完後我在想這意味著什嗎?
我在擔心,是不是每次都會申請$userInfo的記憶體。現在一想,我還只是猜:我才在INIT方法中的$userInfo 應該在棧記憶體申請一塊地址,並且方法執行完之後就會被回收,而$session的這塊記憶體,應該在堆並且,這個記憶體的回收估計和他的失效時間有關係,而protected $userInfo;也應該在對記憶體中申請了一塊記憶體,而每次 我都是把session記憶體位址,賦值給了它,所其實應該對記憶體的開銷不會大。
後面由於修改密碼的時候,要變更session的使用者資訊,所以session會發生變化,所以做了個簡單的判斷。
我希望我這個分析是正確的。
還有個js細節
function dt_confirm(){ var r=confirm("密碼修改成功,是否重新登入") if (r==true){ window.location.href = "<?php echo $this->getBaseUrl(); ?>/Login/loginOut"; } else{ return true; } }
這個跳轉如果路徑木有http://的話,將是根據當前路徑 和傳的參數,重構URL 拼接。
今天上午的故事全發生在svn上面了
嘗試過的手段:
clean up
刪除後 重新check out
本地svn用戶端 clean up
update
都於事無補。不過現在不影響其他檔案的操作。
待解決。。。。