真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何正確的使用phalcon框架-創(chuàng)新互聯(lián)

這篇文章將為大家詳細講解有關如何正確的使用phalcon框架,文章內(nèi)容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

站在用戶的角度思考問題,與客戶深入溝通,找到婁底網(wǎng)站設計與婁底網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名申請、雅安服務器托管、企業(yè)郵箱。業(yè)務覆蓋婁底地區(qū)。

第一個是view.


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

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

LayoutsDir(layouts的目錄路徑),

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

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

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

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

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

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


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


如何正確的使用phalcon框架

..]

如何正確的使用phalcon框架

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


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


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


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

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

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

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

如何正確的使用phalcon框架

BaseVolt文件,繼承模板引擎volt

如何正確的使用phalcon框架

view注入代碼,和目錄結構如圖
如何正確的使用phalcon框架

如何正確的使用phalcon框架

log記錄如下
如何正確的使用phalcon框架

頁面輸出如下:

如何正確的使用phalcon框架

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


當開發(fā)者想動態(tài)使用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是依次執(zhí)行_enginrender時的action view,layout view ,main view的路徑.
理解了這個就可以自己慢慢設置好了路徑了.....

解決辦法有三個.

一 是自己寫個View繼承phalcon的View,處理路徑. 思路是除了action的定位外,其他定位將viewDir變?yōu)榭?
二 是修改phalcon源碼,再自己編譯一遍(在_enginRender外部處理好路徑定位,去除_enginRender和路徑定位的耦合)
三 是,不管了,直接使用相對路徑(不設置basepath,viewsDir因為要動態(tài)定位action view,使用絕對路徑, layoutsDir partialsDir使用相對路徑)

github上是有人發(fā)過這個bug的issue,可是作者沒理會......

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

第二是model

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

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

如何正確的使用phalcon框架

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

關于如何正確的使用phalcon框架就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。


網(wǎng)站欄目:如何正確的使用phalcon框架-創(chuàng)新互聯(lián)
網(wǎng)站路徑:http://weahome.cn/article/dpheps.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部