2015年7月25日 17:31:42 星期六php
一個專門作論壇的開源PHP框架, 有後臺, 支持多語種css
入口文件是框架根目錄的index.phphtml
他包含了/qa-include/qa-index.php: 把URL裏的參數從新組裝放到$requestparts數組裏前端
qa-index.php 文件的最後, 包含了 /qa-include/qa-page.php文件:java
1. 文件最後, 調用 qa_get_request_content()函數, 根據上一步得到的請求數組, 包含進來相應的php文件mysql
2. 包含的時候用到了路由, 也是在這個文件裏定義的; 若是路由沒有匹配到會轉到default.php去找處理程序文件,ajax
會根據uri的第一個路徑參數循環在qa-plugin/下邊找處理文件xxx/xxx-***.php(abc.com/xxx/yyy/....)sql
3. 這個函數處理後生成的是一個數組, 該文件的最後, 調用qa_output_content()函數, 將該數組轉換成html文檔輸出數據庫
4. 若是傳遞了 qa="ajax" 和 qa_operation="xxx" 兩個參數, 會走qa_ajax.php(他也包含了qa_base.php), 裏邊也有路由數組, 包含相應的PHP文件json
結論:
跟syfony同樣是個坑比的框架, 沒有專門寫的完整的html頁面的地方: meta, js, css引用是在框架裏引用的, form表單什麼的也是由PHP函數生成的,
TMD, 這不坑死PHP和前端開發了麼
總結: MLGB CAO
======================
吐槽
從技術上說, 無論什麼語言的什麼框架, MVC也好, 非MVC也好, 歸根結底都是文件的相互包含, 要麼include, require, 要麼import
從大環境來講, MVC的流行, 是由於程序開發愈來愈專業化, 前端的專心搞前端開發和使用流行的技術, 後端專心搞後端開發和使用流行的技術
而MVC正好適應了形勢, 把後端和前端的戰場分開, 誰也不依賴誰, 可使雙方徹底掌控本身的地盤
-----------------
如今程序開發大環境上正處於過渡階段,
例子1. PHP中的smarty, 就是過分階段的產物, 他本身創了一套語法, 能夠以相似html標籤的形式去寫後端代碼, 目標是給前端開發用的, (美其名曰先後端分離)
但實際上都是PHPer在使用. 前端開發者, 不給他們下任務, 誰他麼用啊, PHPer既得熟悉PHP語法, 又得熟悉smarty語法,
何苦呢, PHP自己就是模版語言, 自己就能夠嵌套在html裏, 爲何要用你smarty, 四不像
例子2. angular.js, 他的出現, (可能)會徹底釋放了後端開發, 前端開發也有更多的權力了, 服務器的壓力也變小了
由於, angular.js 接受的是json結果, DOM渲染徹底是由js來把控
之前:
服務器端, PHP/java從mysql裏把數據獲取好, 把html頁面包含進來, 將數據塞進HTML文件裏該放的地方, 而後返回給Apache/Nginx
而後再返回給瀏覽器渲染
如今angular.js:
服務器端, PHP/JAVA把數據從數據庫中讀出來, 組裝成json串, 連同html頁面一塊下發給瀏覽器,
並且html只用下發一次, 後續用戶交互時頁面(數據)有改變時, 只用下發json數據就好了
後端開發者不須要(或不多)去操做HTML文件(判空, for循環等等), 把這些操做徹底分散到瀏覽器端讓js去執行了,
服務器的壓力天然就小了, 就像app開發, 後續的操做徹底是調用服務端接口
SEO:
用了angular.js, 天然會考慮到SEO的問題, 如今百度谷歌都在支持這個技術, 不必擔憂SEO
由於搜索引擎也在互相競爭, 也想收錄到比對手更多的更有用的頁面, 因此不要擔憂搜索引擎是收錄問題
說白了, 主要是作好你的網站, 戳到用戶的痛點, 否則你的SEO就有做弊嫌疑,
搜索引擎天天抓取/收錄大量的頁面, 他也累呀, 並且頁面內容都大差不差, 一旦發現做弊他就永遠不會來了