亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

phalcon框架使用指南

2024-05-04 23:43:16
字體:
來源:轉載
供稿:網友
Phalcon是一款php中國外非常的流程的框架了,但在國內Phalcon框架還不怎么樣了,小編今天來為各位介紹phalcon框架使用教程,希望下文可以幫助到各位
 

初次認識phalcon是在剛學php的時候,最近終于有機會用上了.故此說說使用上的一些感受

個人是很喜歡phalcon這套框架的方式,使用依賴注入,讓代碼組織很靈活,耦合也很低.但是,也許是框架東西太多了,遇到幾個坑. github上一年以上的issue也還沒解決.不過有一定開發經驗的話,還是可以自己修復的.被這幾個坑浪費了不少時間....

第一個是view.

  phalcon的view,可以分成兩大部分,一是全局的layout,二是controller/action的部分,  讓使用時更加方便,設置好layout后,只關注controller部分的view即可.  但是關于view的路徑設置問題,要關注這幾個參數

MainView(主layout文件路徑+文件名,但不包括擴展名,擴展名是在注入視圖引擎時的key鍵值),

LayoutsDir(layouts的目錄路徑),

Layout(主layout文件名,可根據需求,動態使用layouts目錄下的某個文件充當mainView),

PartialsDir(使用partial函數時,查找模板文件,如partial('main/header') 則查找路徑是"/你的partialsDir/main/header.volt" . ),

ViewsDir(設置controller/action對應的模板文件所在的目錄.和partialDir類似,自動查找目錄下的模板文件)

BasePath(視圖的目錄的基礎目錄,phalcon和根據所有設置的dir來組合路徑,查找模板文件,坑就是這了)

我剛開始用這個view的時候,使用的是絕對路徑,因為絕對路徑配置和管理比較方便.
然后我就被坑了.浪費了一個下午的時間調試.
根據官方文檔給出的例子反復測試,發現這個view組件只能使用相對路徑設置路徑,BasePath不用設置.

一氣之下就去翻phalcon的源碼了.開發語言是Zephir,phalcon團隊自己開發的語言.

語言語法比較簡單,容易懂.然后看到了這句.

phalcon框架使用指南

..]

phalcon框架使用指南

看起來像是沒有判斷是相對路徑還是絕對路徑,直接組合起來了而已的,猜測是這里引發了問題.

并且是直接按順序解析action , layout , main layout這些模板文件.

于是想驗證一下.所以我寫了幾個調試文件,打算調試一下.

翻查phalcon源碼過程省略1000字...找到必然會調用,并有路徑處理的幾個主要方法,繼承View相關的幾個class

這里也強調下,很多人喜歡用echo,一般情況是沒問題,但最好還是用文件記錄吧,因為echo局限性其實挺大的,你不知道echo buff什么時候打開,什么時候關閉..使用文件來記錄log最保險了.

我測試的代碼,使用多模塊的方式.

BaseView文件,繼承phalcon的view,并且打開這個方法的報錯信息

phalcon框架使用指南

BaseVolt文件,繼承模板引擎volt

phalcon框架使用指南

view注入代碼,和目錄結構如圖
phalcon框架使用指南

phalcon框架使用指南

log記錄如下
phalcon框架使用指南

頁面輸出如下:

phalcon框架使用指南

跟想像的一樣,使用絕對路徑時,無論如何,phalcon都是直接拼接以上設置的路徑,

當開發者想動態使用controller/action的view,但layouts主目錄又在上層目錄時,就會出問題.

phalcon找的main layout路徑是Phalcon/Mvc/View/Exception: View '/Users/Hin/work/phalcon_mode/app/modules/admin/views/layouts/main' was not found in the views directory

而我要的是/Users/Hin/work/phalcon_mode/app/views/layouts/main

然后找不到路徑,main layout模板文件就不起作用了..........

所以,真的就只是直接組合三個路徑而已..所以,在設置路徑的時候,就看自己的取舍了.

phalcon view源碼里三個變量中,basePath,viewDir(關鍵就是作者對viewDir這個變量理解有誤,導致的bug) 看成是基礎的路徑. viewPath是依次執行_enginrender時的action view,layout view ,main view的路徑.
理解了這個就可以自己慢慢設置好了路徑了.....

解決辦法有三個.一 是自己寫個View繼承phalcon的View,處理路徑. 思路是除了action的定位外,其他定位將viewDir變為空.二 是修改phalcon源碼,再自己編譯一遍(在_enginRender外部處理好路徑定位,去除_enginRender和路徑定位的耦合)三 是,不管了,直接使用相對路徑(不設置basepath,viewsDir因為要動態定位action view,使用絕對路徑, layoutsDir partialsDir使用相對路徑)github上是有人發過這個bug的issue,可是作者沒理會......

------------------------------華麗分割線------------------------------------

第二是model

還有個坑,是關于phalcon的model.一樣是發了issue,作者沒管.
根據文檔model是提供了setter 鏈接描述 方法的,可實際上,setter卻不起作用...

然后像view一樣,自己修復好...

phalcon框架使用指南

個人認為setter getter是非常好用的功能,但有些人卻覺得沒用,見仁見智啦.我們的開發模式是model和controller 由不同的人開發,有了setter getter,數據調用者只管拿數據就可以了,model數據出問題,在model中修改即可,controller不需要改動.工作模式上耦合可以降低很多.

不過用這個框架的開發的項目夭折了,再深入點的坑也遇不到了.沒有意外的話,短期內也不會用了.
最近心情比較糟糕.寫得比較隨便.當個記錄好了.......

最后直接附上 github 源碼,多模塊模式開發用這樣的目錄結構也是不錯的,希望能幫到別人



注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产91久久婷婷一区二区| 久久久免费精品| 91精品国产成人| 91精品国产综合久久香蕉最新版| 777午夜精品福利在线观看| 久久久亚洲影院你懂的| 国产美女91呻吟求| 日韩最新免费不卡| 日本一本a高清免费不卡| 欧美成人黑人xx视频免费观看| 欧美裸身视频免费观看| 欧美亚洲激情在线| 亚洲а∨天堂久久精品喷水| 日韩在线一区二区三区免费视频| 日韩精品高清在线观看| 91精品国产综合久久香蕉的用户体验| 91福利视频网| 最近2019年好看中文字幕视频| 91精品久久久久久久久中文字幕| 国产精品福利网站| 国产成人在线一区| 国产一区二区三区在线播放免费观看| 91tv亚洲精品香蕉国产一区7ujn| 成人激情视频在线| 欧美一区二区色| 久久免费福利视频| 中文字幕欧美日韩va免费视频| 国产精品一区电影| 91亚洲精华国产精华| 午夜精品久久久久久99热软件| 91黑丝高跟在线| www.色综合| 97超级碰碰人国产在线观看| 久久国产精品影视| 色婷婷**av毛片一区| 国产一区二区黑人欧美xxxx| 视频在线一区二区| 国语自产精品视频在线看抢先版图片| 亚州欧美日韩中文视频| 在线视频欧美日韩| 精品中文视频在线| 尤物精品国产第一福利三区| 欧洲美女7788成人免费视频| 亚洲91av视频| 亚洲最大av网站| 欧美另类交人妖| 亚洲精品二三区| 欧美丝袜一区二区| 国产精品福利网| 亚洲女人天堂视频| 亚洲视频一区二区| 亚洲国产精品悠悠久久琪琪| 欧美孕妇毛茸茸xxxx| 日韩黄色av网站| 中日韩美女免费视频网址在线观看| 成人h片在线播放免费网站| 日韩精品视频免费| 538国产精品一区二区在线| 尤物九九久久国产精品的特点| 精品视频在线播放色网色视频| 亚洲aⅴ日韩av电影在线观看| 亚洲色无码播放| 国产精品高潮呻吟久久av无限| 亚洲第一精品夜夜躁人人躁| 97国产真实伦对白精彩视频8| 欧美日韩在线免费观看| 成人做爰www免费看视频网站| 国产成人aa精品一区在线播放| 亚洲欧洲成视频免费观看| 国产91热爆ts人妖在线| 欧美亚洲免费电影| 国产精品老女人精品视频| 高清欧美性猛交xxxx| 九九久久久久久久久激情| 久久精品国产清自在天天线| 成人黄色av网| 欧洲中文字幕国产精品| 国产精品美女呻吟| 日日狠狠久久偷偷四色综合免费| 亚洲mm色国产网站| 粉嫩老牛aⅴ一区二区三区| 日韩精品极品毛片系列视频| 久久精品国产一区二区三区| 中文字幕欧美日韩在线| 在线观看视频亚洲| 亚洲字幕在线观看| 成人精品一区二区三区电影免费| 日本一欧美一欧美一亚洲视频| 欧美乱大交xxxxx另类电影| 欧美日韩免费观看中文| 亚洲精品98久久久久久中文字幕| 5566日本婷婷色中文字幕97| 亚洲国产美女久久久久| 18一19gay欧美视频网站| 久久久国产一区二区三区| 国产精品成人免费电影| 欧美成年人视频| 久久久久久久亚洲精品| 亚洲一区av在线播放| 国产精品一区专区欧美日韩| 欧美日韩成人黄色| 亚洲国产精品电影在线观看| 92国产精品久久久久首页| 亚洲精品中文字幕有码专区| 亚洲精品天天看| 欧美精品videossex88| 国产丝袜一区二区三区| 午夜免费在线观看精品视频| 国产精品一区二区电影| 久久91亚洲精品中文字幕| 成人免费网视频| 国产精品青草久久久久福利99| 日本国产精品视频| 国产a∨精品一区二区三区不卡| 国产亚洲精品综合一区91| 中文字幕亚洲综合久久筱田步美| 亚洲乱码国产乱码精品精| 色综合男人天堂| 欧美黄色性视频| 亚洲黄页视频免费观看| 欧美色播在线播放| 一区二区三区四区精品| 欧美成人四级hd版| 日韩精品在线视频观看| 久久婷婷国产麻豆91天堂| 日韩国产在线看| 亚洲国产天堂久久综合网| 91精品久久久久久综合乱菊| 亚洲天堂第二页| 91av在线免费观看视频| 日本午夜精品理论片a级appf发布| 成人午夜在线观看| 国语自产精品视频在免费| 日日狠狠久久偷偷四色综合免费| 欧美亚洲国产视频| 国产精品中文字幕久久久| 97av在线影院| 日产精品99久久久久久| 精品国产一区二区三区在线观看| 中文字幕最新精品| 日韩的一区二区| 午夜伦理精品一区| 97在线观看视频国产| 亚洲аv电影天堂网| 97超视频免费观看| 欧美在线一区二区视频| 午夜精品美女自拍福到在线| 亚洲欧美视频在线| 欧美巨大黑人极品精男| 色琪琪综合男人的天堂aⅴ视频| 欧美又大又硬又粗bbbbb| 亚洲成人精品av| 欧美性猛交xxxx黑人猛交| 亚洲精品美女在线观看| 国产精品久久久久久久久久久新郎| 欧美野外猛男的大粗鳮| 国产精品日日做人人爱| 亚洲国产另类 国产精品国产免费| 日本三级韩国三级久久| 国产视频福利一区| 中国china体内裑精亚洲片| 亚洲直播在线一区| 91爱爱小视频k| 亚洲欧美日韩精品久久亚洲区|