日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

discuz MVC结构分析

發布時間:2023/12/20 c/c++ 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 discuz MVC结构分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Discuz軟件經解壓后產生的三個文件夾中的一個叫upload的成為網站的根目錄。里面的內容可以在某些網站上在線閱讀,如用好庫編程網。也可以離線在本地閱讀,如用VS.Php for Visual Studio。這里面的內容安排的井然有序。不同用途的文件都放在了不同的文件夾里了。讓我們來看看其中重要的幾種文件和它們是如何結合在一起的。

1。入口PHP文件
在 根目錄下有不多的幾個PHP文件。它們是僅有的直接處理用戶請求指令的PHP文件,是網站的入口。每個對應著網站的一個主要部分,如門戶 (portal),家園(home), 論壇(forum)。 比如用戶可以給網站發個請求指令全站博文目錄頁 home.php?mod=space&do=blog。當網站收到這個請求后,就會運行home.php來處理這個請求。home.php并不 直接回復用戶,而是從用戶提交的字符串里找到具體的請求內容,然后交給相應的程序塊來處理。在上面的例子里,space意為空間,blog意為博客,所以 用戶是在請求得到博文目錄。所以這個請求交給了負責有關空間請求的程序塊 source\module\home\home_space.php 來處理。

2。程序塊PHP文件

程序塊(module)可以說是入口文件的助手, 接受入口文件指派的任務。一個入口文件一般有幾個這樣的助手處理不同的請求。比如家園口(home.php)就有編輯器(editor),分享 (follow),邀請(invite),道具(magic),勛章(model),空間(space)等助手,都在source/module /home文件夾里。一般每個對應著一類界面樣子固定的請求。比如負責空間請求的程序塊是 source\module\home\home_space.php。和入口不同的是從同一個入口有可能會看到樣子完全不同的頁面。但當同一個程序塊來服務時,會看到樣子相同的的頁面。 在用戶的請求指令里(如home.php?mod=space&do=blog)指明了需要哪個程序塊,如mod=space表明是要空間塊,mod代表module(程序塊)。

程序塊并不是用戶請求作啥就作啥,它負責檢查該用戶是否有權利作做此要求。有時它會將工作分派給 某個助手。如當用戶請求home.php?mod=space&do=blog時,他不光指明了處理請求的程序塊(mod=space)還指明了 具體的工作(do=blog),而空間這個程序塊有助手來處理各個工作,都在source\include\space里,如 space_album.php處理相冊, space_blog.php處理博客, space_favorite.php處理分享。

3。被包含PHP文件 space_blog.php 要想生成用戶要的博文目錄網頁需要兩樣東西:一是數據,在這里就是博文名單和每篇博文的一些信息如標題和作者名。二是顯示的格式。前者可要封裝數據庫表的類(class)來提供,后者定義在一個模板(template)文件里。

4。數據庫表的封裝類
Discuz 提供了很多個類(class)來封裝數據庫里的各個表,這樣從數據庫里取數據就不需要寫SQL語句,而只要用相應的類里提供的方法(method)就行 了。這些類都在source\class\table文件夾里。space_blog.php要用的是table_home_blog類來得到儲存在 home_blog表里的博文信息。

5。HTML模版文件

數據有了,那怎樣將這些數據漂亮和整齊顯示在瀏覽器里呢?這需要定義HTML的格式。這些格式都定義在template文件夾里。特別是用來顯示博文信息的格式定義在template\default\home\space_blog_list.htm里。


最后讓我們總結一下當網站收到用戶的請求home.php?mod=space&do=blog時,網站程序內部分派工作的次序
1?? home.php
2? ? ? ?? 分派給 source\module\home\home_space.php
3? ?? ?? ?????? 分派給 source\include\space\space_blog.php
4? ?? ?? ???????????? 數據取自source\class\table\table_home_blog.php
5? ????? ?? ????????? 格式定義在 template\default\home\space_blog_list.htm
從這些文件的內容和作用看,Discuz是按照MVC 架構模式將程序分割成若干邏輯部件:模型-視圖-控制器(Model-View-Controller) 。

source\include\space\space_blog.php屬于服務層,source\class\table \table_home_blog.php屬于數據層,二者合起來組成了模型層,template\default\home \space_blog_list.htm屬于視圖層,而home.php和source\module\home\home_space.php屬于控 制器層。

?

轉載于:https://www.cnblogs.com/axtkdd/p/4707972.html

總結

以上是生活随笔為你收集整理的discuz MVC结构分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。