symfony03_1:探索symfony代碼

第一眼看到symfony的代碼結構會讓人感到擔心,他有非常多的目錄和腳本組成,並且文件由PHP類、HTML以及PHPHTML的混合代碼組成。但一旦你瞭解了背後的祕密,你就會感覺symfony的這種結構非常的自然。

MVC模式

Symfony基於傳統的MVC架構,MVC包括三層

  • 模型(Model)表述應用操作的信息
  • 視圖(View)將模型轉換爲適合用戶交互的網頁形式
  • 控制(Controller)響應用戶動作並適時調用模型或者視圖的變動

MVC模式圖


MVC分層

爲了幫助理解MVC的好處,讓我們來看看如何將一個PHP應用程序轉換到MVC架構。

單層程序(不分層)

在單層PHP文件,顯示數據庫數據可能像下面的代碼所寫:

<?php

 

// Connecting, selecting database

$link = mysql_connect('localhost', 'myuser', 'mypassword');

mysql_select_db('blog_db', $link);

 

// Performing SQL query

$result = mysql_query('SELECT date, title FROM post', $link);

 

?>

 

<html>

  <head>

    <title>List of Posts</title>

  </head>

  <body>

   <h1>List of Posts</h1>

   <table>

     <tr><th>Date</th><th>Title</th></tr>

<?php

// Printing results in HTML

while ($row = mysql_fetch_array($result, MYSQL_ASSOC))

{

echo "/t<tr>/n";

printf("/t/t<td> %s </td>/n", $row['date']);

printf("/t/t<td> %s </td>/n", $row['title']);

echo "/t</tr>/n";

}

?>

    </table>

  </body>

</html>

 

<?php

 

// Closing connection

mysql_close($link);

 

?>

 

這能快速編寫,快速執行但卻難以維護,下面是代碼的幾個主要問題:

l         沒有錯誤檢測(數據庫連接失敗會怎樣?)

l         HTMLPHP代碼混雜在一起

l         代碼完全綁定到了MYSQL數據庫

 
發佈了4 篇原創文章 · 獲贊 0 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章