摘要:另外這個框架作為后端純框架。當前博客就是用這個組件寫的,代碼也在上。還需完善的一些地方近幾天抽空解決下自定義路由添加正則匹配。的格式換行數據內容換行數據內容最后一個目前是通過正則來解析處理的,如果設置了。使用生成臨時文件。
來自博客:神的尾巴,原文鏈接
已提交到github,路由組件代碼,代碼質量一般,大家將就著看 : )
組件思路現在都是單入口,通過index.php配置組件,然后通過組件dispatch,來調用指定的控制器。
另外這個框架作為后端純Api框架。沒有PHP模板引擎,所有與前端的數據交互都通過json(推薦)或xml。所以要支持跨域,也要支持RESTFul風格的請求。
當前實現了的一些特性自動調用控制器,處理請求。
專門解析參數的Param工具類。
PHP不處理PUT請求過來的參數,添加Parser工具類,有解析器FormData,Json,用來處理前端發過來的數據。包含上傳文件的解析(設置到臨時文件,對于比較小的文件直接獲取文件內容,可以自己配置)。
還需完善的一些地方(近幾天抽空解決下)當前博客就是用這個組件寫的,代碼也在github上。
自定義路由:添加正則匹配。
例如`/article/:id`,自動配置整數,并設置到參數id。 [ "url" => "/article/:id", "filter" => [ "id" => "/d+/" ] #"controller" => "Article@detail" "real" => "/article/detail/:id" ]實現過程
composer.json配置
{ "name": "godtail/router", "description": "Easy router, no config, support RESTFul.", "license": "MIT", "require": { "php": ">=5.3.3" }, "autoload": { "psr-4": {"GodtailRouter": "./src"} } }需要的配置
"deep" => 2, #控制器層數 "default" => ["Index", "index"], #默認,自動補全 "namespacePre" => "Service", #控制器命名空間前綴 "classSuffix" => "Service", #控制器類名后綴 "crossDomain" => [ #跨域設置 "allowOrigin" => "http://test.net", "maxAge" => "86400", "headers" => "Content-Type", "methods" => "OPTIONS, GET, PUT, POST, DELETE", ]如何獲得比較好的URL風格
通過nginx rewrite,把匹配不到的url,rewrite為index.php?/$uri。
location / { try_files $uri $uri/ /index.php?/$uri; }
這樣godtail.cn/index.php?/article/tag,就可以寫成godtail.cn/article/tag。
路由分層和URL參數解析config的deep參數,用來配置路由多少層,如果功能比較簡單可以只分為2層,如果分module,則可以分成3層。
獲取URL,根據/拆分。 例如`deep=2`, `godtail.cn/article/tag/page/2`,把page設置到Params。 Params: 保存著一個靜態變量$data,用來存放請求過來的參數。 提供get,set,parse方法。FormData的解析
如果通過POST過來的請求,PHP能夠處理,設置到$_POST或者$_FILES,但是如果是PUT請求,則需要自己處理php://input數據流。
FormData的格式
------boundary--------["--"+boundary] name=1 content-type=xxxx [換行] 數據內容1 ------boundary--------["--"+boundary] name=2 content-type=xxxx [換行] 數據內容2 ------boundary---------[最后一個"--"+boundary+"-"]
目前是通過正則來解析處理的,如果設置了saveFile。使用tempnam生成臨時文件。
啟用#設置配置 Router::config($config["router"]); #dispatch Router::dispatch();
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/22011.html
摘要:是什么是一款頂級全棧開發框架。漸進式開發由于模塊的高度內聚,可以將業務以模塊的形式沉淀,在多個項目中重復使用,既可貢獻到開源社區,也可部署到公司內部私有倉庫。模塊發布當項目中的模塊代碼穩定后,可以將模塊公開發布,貢獻到開源社區。 EggBorn.js是什么 EggBorn.js是一款頂級Javascript全棧開發框架。 EggBorn.js是采用Javascript進行全棧開發的最佳...
摘要:單頁面應用的出現依然存在著爭議性,我們該如何看待他的兩面性呢接下來小生給大家總結一下他的優缺點。單頁面應用的優勢無刷新體驗沒有了令人詬病的頁面頻繁刷新,同時節約瀏覽器資源,路由響應比較及時,提升了用戶的體驗。 前端猿一天不學習就沒飯吃了,后端猿三天不學習仍舊有白米飯擺于桌前。IT行業的快速發展一直在推動著前端技術棧在不斷地更新換代,前端的發展成了互聯網時代的一個縮影。而單頁面應用的發展...
閱讀 1079·2021-11-16 11:44
閱讀 1368·2019-08-30 13:12
閱讀 2401·2019-08-29 16:05
閱讀 3070·2019-08-28 18:29
閱讀 904·2019-08-26 13:41
閱讀 3228·2019-08-26 13:34
閱讀 2596·2019-08-26 10:35
閱讀 931·2019-08-26 10:28