學Java出身的,學得也很平常,沒什么亮點。從一開始的servlet 到 struts2 到springMvc 從jdbc 到ibatis mybatis。基本上增刪改查跑一邊吧。
如今參加工作了,寫了6個月的PHP。今天突然之間有點感悟,記錄一下。
因為公司的原因,項目總是再換,總是沒做完,我總是坐着很多相同的事情。所以有時候,我覺得很累。項目經理會說,你有了前面的基礎應該就很快了吧。(他是非專業的)。讓我更加累。一是進度趕,然后是身心俱疲,人的重復不像for循環。我們很快就厭煩了。而for它是沒有感知能力的。
就在這樣的一個環境下,我可能有意無意的再審視自己的代碼。今天我比較了一下和以前寫Java的思路,我發現,我今天寫着的代碼是最開始我寫Java的servlet 業務層 數據層 全部都是寫在一塊的。因為有了JSP 所以當初視圖卻還是分開的,現在寫的PHP 視圖同樣也還是分開了。
在我現在的寫法中經常看見類似這樣的代碼。《框架doitphp》
//葯品 public function medComAction(){ $this->display('medicines/medcom'); } //單個問答頁面 public function pushAction(){ $this->display('medicines/push'); } //系統葯品庫 public function medSysAction(){ // 系統葯品庫 $modelForSysproduct = $this->model('Sysproduct'); $resForSysproduct = $modelForSysproduct->order('id desc')->findAll(); var_dump($resForSysproduct); $this->display('medicines/medsys'); }
沒有寫任何東西的話,這其實就是對請求做重定向處理,類似Java的action,action只負責跳轉,二具體在跳轉之前要做什么事情,這輸入業務層。
這段代碼的第三個方法,我在調用數據,意思,我的數據層讀寫,也寫在了這里。然后在Java中這應該是放在dao層的。
說道dao,這里就要提起PHP 一些框架的model這個類。他是數據數據層的一個基類。封裝了基礎的方法。
然而一般的話,淺顯點兒理解。一個表,會對應一個model. 在想想Java Java中一個對象,對應一個數據層的xml配置文件。一對一。
這里我不知道這么說可不可以,有時候面向對象編程,一定意義上可以說是面向數據庫編程。
Java 中一個對象的 dao層 會封裝這個對象,對應操作數據庫的所有方法。所以同理,PHP這里的model其實也就充當着這個角色。
所以框架的設計者一開始是沒有錯的。然后我又看了下框架的目錄結構圖
在application目錄,我一般沒用到過。我想可不可以作為實體bean的目錄。只要想就可以的。