基於CodeIgniter架構的前後端完全分離開發

來源:互聯網
上載者:User
關鍵字 php codeigniter
想用CI架構做個網站,有以下幾個需求:
1.前後端完全分離,前台和後台都使用JSON格式介面進行資料交換;
2.不管是前台還是後台,其前端和後端都是獨立的一個項目。
不知道這個怎麼實現,希望各位大牛指點以下

回複內容:

想用CI架構做個網站,有以下幾個需求:
1.前後端完全分離,前台和後台都使用JSON格式介面進行資料交換;
2.不管是前台還是後台,其前端和後端都是獨立的一個項目。
不知道這個怎麼實現,希望各位大牛指點以下

第一點,一般情況下,Controller經過一系列資料庫CRUD得到需要顯示的資料,載入前端模板檔案,再由模板檔案渲染資料最終顯示出來完整的HTML頁面。要實現你說的方式,需要改變Controller的行為:把CRUD得到的資料轉化為json格式,直接print出來。同時前端每個靜態頁面通過ajax請求不同的Controller得到需要的json資料,用javascript把資料放置到html頁面中的各個位置,最終顯示完整HTML頁面。

第二點,前後端都是獨立的一個項目,可以簡單理解為模組化,前端,後端,甚至是Blog部分,留言部分,新聞部分,分類部分,都是一個獨立的模組。CI本身不經過重載核心檔案實現這個功能比較麻煩,最簡單的方法是使用CI的HMVC外掛程式,把每一個功能做成獨立的模組,每個模組中都含有獨立的MVC部分。這樣在檔案組織圖方面,每個模組的代碼可以放在各自獨立的檔案夾中。另外在資料庫設計方面,每個模組盡量使用各自獨立的資料表。各模組間的設計也盡量採用鬆散耦合模式。

提供一個方案:分成四個application

後端api 提供商務邏輯封裝資料處理
後台ui 渲染視圖,提供操作介面與後端api互動
前台ui 渲染視圖,提供操作介面與後端api互動
前端 在前台和後端api之間做橋樑

我們現在的方案是h5+Java springmvc。使用swagger oai統一介面規範,前後分離開發,前端未使用webpack等編譯型js,後端未使用試圖模板。後端未有專業測試,swagger ui代勞。前端用了一個mock server。

如果你使用oai定義restful api,swagger可以直接產生後端前端的介面代碼,也有0code 的swagger-server當前端mock server。後端springmvc也有全自動的restful測試載入器。

當然你需要先寫oai,同類的文檔還有api blueprint

看你的項目是否需要SEO,需要SEO的話最好還是別分離。
分離的話也就是後台實現RESTful API,前台ajax載入就行了。

CI架構可以不用寫View部分,Controller的每一個public函數就可以看做API的調用介面。
前台可以選擇一個UI架構+ajax來擷取資料。

當然ajax擷取的資料是沒有辦法被搜尋引擎發現的(其實通過某些辦法也是可以的),同時用ajax擷取資料做展示的時候需要考慮瀏覽器的前進後退邏輯。

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.