資料介紹
軟件簡介
邁思框架(MyStep Framework)是一套基于?[PHP 7.0]?的web開發框架,旨在構建一個可以便捷調用常用功能,以最簡潔的代碼實現目標功能,同時具備高度可擴展性,可通過代理模式,方便的將第三方功能模塊集成到框架中。
- 路由系統 - 框架通過 rewrite 方法接管所有響應,除 static 目錄和自定義擴展類型外,其他文件均無法直接通過 url 訪問,兼具高可控性和安全性。 (IIS對應web.config,Apache對應.htaccess,NginX需參考目錄下文件手動添加)。
- 路由模式 - 為增加環境適應度,框架同時支持Rewrite,QueryString和PathInfo三種模式,頁面中站內URL只需要按照rewrite的模式書寫(相對于框架目錄,首位無需加"/"),框架將自動調整為對應模式,但為保證最大兼容性,php腳本內的鏈接多以QueryString模式處理。
- 模版系統 - 采用二次編譯模式,嚴格實現模板與程序的分離,通過通俗的標簽模式調用各類數據。基本模板格式簡單易學,方便制作,只要對HTML有一定了解的設計師均可以很快上手,模板修改后即時生效。同時具備高度可擴展性,可根據實際需要任意擴充模版標簽。
- 插件系統 - 可插件模式擴展框架功能,無論是功能增強、系統優化、前臺展示均可與系統無縫連接。內容評分、評論、投票、專題、檢索、采集、統計等都可以通過插件實現,并可以無縫結合到系統中。
- 應用接口 - 系統為各類插件提供了豐富的接口,無論是api、模板標簽、代碼嵌入、腳本附加、登錄處理,都可以通過系統接口便捷地實現,為二次開發或插件開發提供最大限度的支持和自由。
- 多語言支持 - 系統可以隨意添加語言包,通過調整參數立即變化。
-
緩存機制 - 通過三級緩存保證高效
- 數據緩存,用于緩存從數據庫查詢出的結果集,包含自建文件和數據庫兩種模式,也可通過代理模式擴展;
- 頁面緩存,可將解析好的頁面整體緩存到緩存文件,在過期前不用再次生成頁面,即實現了靜態化的效果,也保留了動態腳本的特性;
- 瀏覽器緩存,通過etag標識,在客戶端再次請求頁面數據時,如頁面未發生變化,則直接從客戶端緩存調用數據,減少了對服務器帶寬的請求。
公共函數:
- getMicrotime($rate) - 獲取微秒時間
- getTimeDiff($time_start, $decimal, $micro) - 取得時間差
- getDate_cn($date) - 獲取中文日期
- shortUrl($url, $max_length) - 縮略鏈接
- tinyUrl($url) - 獲取短網址
- isMobile() - 判斷是否為移動設備
- isHttps() - 判斷當前是否為SSL鏈接
- myEval($code) - 自定義代碼執行
- checkPara($att_list, $parse) - 檢測數據變量中是否有待解析的變量,并解析
- recursionFunction($func, $para) - 遞歸執行某一函數
- getOB() - 獲取緩存區內容并清空
- debug系列函數 - 變量情況查看
執行順序:
所有響應網址均通過rewrite模塊反饋給根目錄下的index.php腳本統一處理,雖然框架也支持QueryString和PathInfo兩種模式,但是為了更好的網址優化和安全性,建議采用rewrite的方式,主要執行流程如下:
- 初始化框架 - 通過框架根目錄index.php,調用myStep::init()
-
路由模式判斷 - 通過 $router->check() 判斷是否存在自定義路由
- 當前響應路徑符合已設定的自定義路由規則,按規則調用指定的響應方法,可由多方法依次執行構成多級響應。可通過框架默認處理方法myStep::getModule()調用相應模塊(具體處理流程詳見核心類對應方法講解),也可以根據需要替換為自定義方法。
- 如未發現何時規則,則分析響應路徑,將一級路徑或默認app指定為響應app,并調用該app路徑下的index.php處理
-
框架變量設置 - 在獲取執行入口之后,框架將繼續調用以下程序
- myStep::setPara() - 此方法在執行入口腳本之前將調用,用于加載應用設置(config.php)、應用函數庫(lib.php),并設置基本框架變量
- $mystep->preload() - 并非myStep類中的原生方法,但是如果應用擴展類中存在此方法,將會在聲明類后立即執行
- lib.php - 應用函數庫(app/[name]/lib.php,推薦使用命名空間),在核心類已加載并聲明實例后加載
- global.php - 本腳本為應用通用腳本,自定義路由模式下通過 myStep::getModule() 自動加載,其他模式下需手動加載,可用于在模版實例聲明后做后期變量及程序調整。
- $mystep->shutdown() - 并非myStep類中的原生方法,但是如果應用擴展類中存在此方法,將在頁面結束時執行
PHP常量:
- PATH - 當前應用路徑
- ROOT - 框架根目錄路徑
- ROOT_WEB - 框架相對于網站根目錄的相對路徑
- APP - 應用存放路徑
- LIB - 函數及類存放路徑
- CACHE - 緩存及臨時文件存放路徑
- CONFIG - 配置文件存放路徑
- PLUGIN - 插件存放路徑
- STATICS - CSS、JS及圖片等靜態文件存放路徑
- VENDOR - 第三方應用庫存放路徑
- FILE - 文件上傳目錄
全局變量:
- $s - 框架配置,通過對象模式調用,如$s->web-title
- $info_app - 當前調用應用的基本信息,除對應APP信息外(APP目錄下info.php定義),還包括path(數組)和route(字符串)項目
- $mystep - 應用入口類,如應用路徑下不存在以應用路徑名命名的類(如test/test.class.php里面的test類,且此類應該是mystep類的擴展),則調用默認mystep類
- $db - 數據庫操作類,在函數初始化時根據設置連接,采用代理模式,可擴展
- $cache - 數據緩存類,在函數初始化時根據設置連接,采用代理模式,可擴展
- $tpl_setting - 模版參數,從 app 設置中調用,并繼承于全局變量
- $tpl_cache - 模版緩存參數,從 app 設置中調用,并繼承于全局變量
基礎類:
myBase為抽象類,可為所有其他子類提供統一的構建方法和錯誤處理;myTrait為擴展類,可為所調用的類提供一整套魔術方法
- myBase->__construct - 將構造函數引導至init方法
- myBase->setErrHandler - 設置錯誤處理函數
- myBase->error - 通過異常處理類處理代碼錯誤
- myTrait->__set - 添加類動態變量,即沒有在類中聲明過的變量
- myTrait->__get - 調用類動態變量,如變量名為instatnce,則直接返回新的當前類實例
- myTrait->__destruct - unset類時,注銷所有類內部變量
- myTrait->__call - 智能判斷并調用方法別名,動態方法或類外部函數
- myTrait->addMethod - 動態添加類方法
- myTrait->regAlias - 注冊類內方法別名
控制類:
myController類為核心控制類,具體用法請參加功能類文檔,其中幾個重要方法說明如下:
- 頁面附加內容設置 - 包括 setAddedContent 和 pushAddedContent 兩個方法,可設置指定關鍵字的內容,并將相關內容插入到模版中"page_關鍵字"的位置
- 語言文件管理 - 包括 setLanguage,setLanguagePack 和 getLanguage 三個方法,可設置語言、語言包或調用指定語言、指定索引的文字
- 應用接口設置 - 包括 regApi 和 runApi 兩個方法,可通過路由的 /api/[str]/[any] 調用
- 模塊設置 - 包括 regModule 和 module 兩個方法,可通過路由的 /module/[str]/[any] 調用
- 模版標簽設置 - 包括 regTag 一個方法,將在調用show方法時加載給模版類
- 鏈接設置 - 包括 regUrl 和 url 兩個方法,通過指定方法和相關參數生成對應鏈接
- 插件設置 - 包括 regPlugin 和 plugin 兩個方法,每個插件是應用接口,模塊,標簽和鏈接的組合
- 代碼鉤子設置 - 包括 setFunction 和 run 兩個方法,將在指定的位置(start,end,page等,也可自定義)依次(順序或倒序)執行指定的方法
- 用戶賬戶管理 - 包括 regLog,login,logout 和 chg_psw 四個方法,用于與第三方用戶系統對接
- 腳本管理 - 包括 addCSS,removeCSS,clearCSS,CSS,addJS,removeJS,clearJS 和 JS 八個方法,用于動態加載js和css腳本
- 頁面控制 - 包括 start,show 和 end 三個方法,用于頁面起始、顯示和結束
- etag方法 - 用于賦予或調用指定標識的瀏覽器緩存
- file方法 - 直接顯示指定文件
- guid方法 - 生成唯一ID
- setOp方法 - OPcache設置與調用
- regClass方法 - 設置類自動載入規則
- setAlias方法 - 設置類調用別名
- header方法 - 返回指定的響應頭(可以編碼或指定的索引,具體參見源代碼)
核心類:
myStep類擴展自myController類,具體用法請參加功能類文檔,其中幾個重要方法說明如下:
- start($set_plugin) - 執行于腳本主程序開始之前,用于設置框架類及其方法的調用別名,設定錯誤報告模式,加載應用對應插件,初始化cookie和session,聲明數據庫($db, 如$s->db->auto為false,則不建立連接,以便于無數據庫操作的應用)和緩存($cache)實例,以及為狀態變量賦值
- show(myTemplate $tpl) - 用于加載網站基本參數至模版實例,并將結果直接顯示(在此可添加針對顯示內容的預處理方法);同時也檢測并按需更新應用腳本文件([appName].js 和 [appName].css,詳情見相關專題),如設置"$mystep->setting->show = true",則將在頁面最下面顯示基本運行信息。
- render(myTemplate $tpl) - 與 show 方法類似,但是返回通過模版實例所生成的頁面內容,而不是直接顯示
- setLink($content) - 針對所生成頁面的鏈接,根據設定的鏈接模式(rewrite,pathinfo或querystring)進行處理,頁面模版中只要按照rewrite模式書寫,在頁面顯示時將自動通過本預處理方法調整為對應設置的鏈接。
- end() - 腳本結束時所用的方法,搜集并對比運行結束時的信息,結束并清空變量,并智能調用用戶擴展類中自定義的 shutdown() 方法
- info($msg, $url) - 執行結果或提示信息顯示,并在5秒后自動跳轉到對應的鏈接
- redirect($url, $code) - 腳本內鏈接跳轉,如$url為空則退回來路鏈接;$code默認是302臨時跳轉,可根據需要改變。
- init() - 靜態方法,預初始化基本設置信息(如發現有錯誤將自動調整),聲明類加載模式,如為首次執行框架的話,將自動跳轉到初始設置頁面
- go() - 框架執行入口,加載設置信息,判斷靜態文件并直接顯示,否則根據路由規則調用相關腳本
- setPara() - 聲明框架實例,默認直接調用myStep類,也可在對應APP中擴展,框架會自動調用APP目錄下"[appName].class.php"中與APP同名的類。將APP配置覆蓋全局配置,然后再調用start方法,同時聲明預加載的css和js腳本文件以及模版的初始設置。
-
vendor($class_info) - 調用位于VENDOR目錄下的第三方PHP功能類,需要滿足以下條件。
- 如$class_info為字符串,所調用類(位于vendor目錄下)的目錄名、文件名和類名必須一致,其中文件名可為"名稱.php"或"名稱.class.php"
-
$class_info可以為數組,包含
- dir - 目錄名稱,如不設置默認與 file 值相同
- file - 不帶擴展名的文件名稱,擴展名可為".php"或".class.php",如不設置默認與 dir 值相同
- class - 調用類名稱,如不設置默認與 file 值相同
- namespace - 類的命名空間,沒有請留空
- 方法中除了首參數($class_info)外,后面的參數將用于在聲明類時,構造函數(__construct()或init())的初始化
-
getModule($m) - 自定義路由處理函數(也可以通過自定義方法處理自定義路由,詳情參見"自定義路由"專題),機制如下:
- 傳入參數 $m - 本參數傳遞路由外的路徑信息,如路由為 /manager/[any],URI 為 /manager/path1/path2,則 $m 為 path1/path2,即[any]部分,但需要注意的是在本方法中,$m 被截取為 path1。此參數可直接在自定義的路由處理腳本內調用,但如需在下級函數中調用,需要先進行global處理。
- 本方法將通過 myStep::setPara 方法調用當前 app 設置中的模版參數設置(可繼承于全局設置,存儲于全局變量 $tpl_setting 中)
-
本方法將按照如下順序調用處理腳本(發現可用腳本后將立即調用并停止試探)
- app路徑/module/模版樣式/$m.php($m 為輸入參數)
- app路徑/module/模版樣式/路由名稱.php (如路由為 /manager/[any],路由名稱為 manager)
- app路徑/module/$m.php($m 為輸入參數)
- app路徑/module/路由名稱.php (如路由為 /manager/[any],路由名稱為 manager)
- app路徑/module/模版樣式/index.php(模版樣式為設置中對應的內容)
- app路徑/module/index.php
JS變量:
相關變量是通過腳本在頁面被調取時動態生成,在調用時建議在onload事件或jQuery的$(function(){})中調用
- language - 調用系統語言設置(可自動擴展app語言包)
- setting - 調用系統設置(包括:language,router,debug,app,path_root,path_app,url_fix,url_prefix,url_prefix_app等信息,可通過APP設置重的 $setting['js'] 擴充)
-
global - 全局變量,可在任何函數內部調用,可隨意擴種,已包含以下子參數:
- global.root - 針對rewrite、pathinfo和querystring模式下的根路徑
- global.root_fix - 配合setURL,用于頁面鏈接的自適應調整
- global.editor_btn - 針對tinyMCE編輯器的按鈕擴展
- global.alert_leave - 在含表單的頁面,如果內容發生變更,且通過非提交方式離開頁面的話,將此變量設置為 true,即可出現警告
- global.timer - 用于計時器的返回值記錄(非強占,可靈活調用)
- global.func - 頁面載入后所需運行的函數組
JS函數:
- getPath(lvl) - 獲取相對于網站根的到調用函數頁面所在路徑的lvl級路徑
- $id(id) - 獲取對應id的頁面元素
- $name(name, idx) - 獲取對應name的頁面元素(組),idx可為first,last,數字索引,否則返回全部符合的元素組
- $tag(name, context) - 依照context(默認為document)獲取對應tag的頁面元素組
- isArray(para) - 判斷變量是否為數組
- loadingShow(info) - 顯示鎖屏信息,再次調用則關閉
- openDialog(url, width, height, mode) - 開啟模態窗口
- openWindow(url,width,height) - 新開窗口
- sleep(the_time) - 程序終端指定時間
- copy(obj) - 復制某一頁面元素內容(value或innerText)或者一個字符串
- rndNum(min,max) - 生成指定范圍內的隨機數字
- rndStr(len, t_lst, c_lst) - 生成隨機字符串(可自定義采樣內容)
- watermark(obj, rate, copyright, char_c, jam_tag) - 添加字符串水印
- md5(str) - 生成str的md5編碼
- debug(para, mode) - 檢測指定變量para的內容
- checkObj(obj, func_show) - 查看對象屬性
- reportError(msg, url, line) - 錯誤信息處理
- checkSetting() - 通過在需要調用檢language, setting變量的函數開始加上"if(!checkSetting()) return;"(參考global.js中setURL函數的用法)來保證對應函數執行時可調用系統變量
- setURL(prefix) - 配合域名綁定模式和路由模式,智能處理頁面內鏈接
- gotoAnchor(theAnchor) - 滾動至對應的錨點
- ms_func_reg(function) - 注冊需要頁面載入后運行的函數
- ms_func_run() - 運行于所有頁面載入之后的函數(框架自動在page_end處運行)
-
對象方法擴展 - 針對 String,Data,Number,Array 等對象
- string.blen - 返回某字符串的二進制長度
- string.trim - 去除字符串首尾空字符
- string.printf - 字符串賦值
- data.format - 格式化日期(YYYY-MM-dd hh
- 在micropython上搭建web框架和web服務——新生代web框架:mpy-urouter
- ThinkPHP 6.0完全開發手冊資源下載 13次下載
- Flask Web開發基于Python的Web應用開發實戰電子書 1次下載
- Microsoft NET Micro Framework微型Net框架的資料簡介
- 澤宏WEB應用開發框架及工作流平臺介紹 3次下載
- Web服務組合匹配框架研究 0次下載
- SSM框架在Web應用開發中的設計與實現 pdf下載 2次下載
- 采用J2EE面向Web應用系統開發平臺 15次下載
- Struts In Action使用領先的Java框架構建Web應用 34次下載
- Struts和Spring兩種MVC框架的比較 0次下載
- 一種基于XML的可復用Web圖表框架
- 基于Struts和Hibernate框架的Web應用的設計與
- 一種基于復用組件的WEB測控軟件框架設計
- 基于Struts框架和Procedure的Web開發模式
- 基于工作流技術的復合語義Web服務框架
- 基于Actor Framework仿真線性編碼器 552次閱讀
- Python Web框架Django 5.0新特性 962次閱讀
- 嵌入式框架Zorb Framework狀態機的實現 896次閱讀
- 嵌入式框架Zorb Framework搭建方案 1315次閱讀
- Web應用安全防護容易犯錯的十大誤區 687次閱讀
- 聊聊PHP的web應用程序開發框架存在的漏洞有哪些 1561次閱讀
- 盤點六大常見的移動APP開發框架 2w次閱讀
- 初學Java Web開發應該如何學習 2645次閱讀
- 現在流行的Web APP開發框架有哪些 1.1w次閱讀
- 區塊鏈應用開發框架Forge介紹 2226次閱讀
- python的web部署方式大全! 3061次閱讀
- 嵌入式應用框架EAF詳解 2700次閱讀
- 16 款優秀的Web開發輔助工具推薦 4032次閱讀
- web前端開發工具排行:8款html開發工具推薦下載 8.5w次閱讀
- 創建 Web 前端開發環境 2235次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多