Phalcon如何創建多模塊並能進行訪問 《Phalcon入坑指南系列 四》


本系列目錄

一、Phalcon在Windows上安裝 《Phalcon入坑指南系列 一》

二、Phalcon入坑必須知道的功能《Phalcon入坑指南系列 二》

三、Phalcon如何切換數據庫《Phalcon入坑指南系列 三》

前言

使用Phalcon框架大多數都是為了其多模塊功能來的,今天來聊聊Phalcon多模塊如何使用。

依然是一步一個坑,使用這個框架就是痛並快樂着,一邊承受坑帶來的痛苦,一邊享受解決坑的快樂。

一、創建一個多模塊應用

使用命令先來創建出一個多模塊的項目phalcon create-project kakaModules modules

多模塊項目
多模塊項目

可以看到生成的項目只有一個默認的frontend模塊。

在frontend模塊的index控制器中先來試試訪問先,看多模塊是如何訪問的。

打印結果
打印結果

跟咔咔想的結果是如出一轍,就是默認進的這個模塊的index方法。

先按照常理出牌,按照正常方式看是否會正常訪問

app/modules/frontend/controllers/IndexController.php這個文件里邊創建一個kaka方法

測試kaka方法
測試kaka方法

進行訪問測試

返回結果
返回結果

看來Phalcon還是迎合大眾的胃口的。

二、注意:當你多模塊無法訪問怎么辦

還記得在第一期文章中將單模塊創建好了之后對Nginx修改了一次配置。

這個也是官方給提供的配置,按理說如果配置好了,后邊就是再創建多模塊也不會影響什么。

咔咔就是走了不尋常之路,重新配置了一個虛擬域名,但沒有修改Nginx配置,所以一直提示無法訪問。

如果你也出現了如下界面,則看看自己是否配置了Nginx

訪問報錯
訪問報錯

可以看到跟上文的訪問路徑是一致的,就會出現這樣的情況。一定要看看是否配置了Nginx。

下圖是咔咔的配置,如有需要可以直接復制拿過去使用。

nginx配置
nginx配置

最重要的也就只有一行配置

 try_files $uri $uri/ /index.php?_url=$uri&$args;

三、如何創建屬於自己的一個模塊

使用命令來創建一個屬於自己的模塊phalcon module --name kaka --namespace=kaka --output=app/modules

創建kaka模塊
創建kaka模塊

創建出來的kaka模塊,你可以看到在controller中是沒有文件的,那么這個文件是否可以用命令來進行創建呢?

那肯定是可以的嘍!phalcon controller --name index --output=app/modules/kaka/controllers

創建出來的文件
創建出來的文件

文件到手天下我有,先來訪問一波看是否可以。

訪問結果
訪問結果

這可是真無情,但也無妨。根據報錯信息可得知KakaModules\Modules\Frontend\Controllers\KakaController handler class cannot be loaded訪問路徑莫名其妙進入到了系統默認的frontend模塊。

先不管這個錯誤是怎么發生的,先來看看創建出的文件是不是有問題,非常明顯的一個問題就是沒有命名空間。

先給控制器加上命名空間先。

添加命名空間
添加命名空間

此時還需要十分注意的是module這個文件,此文件是非常重要的,同樣也要添加對應的命名空間。

添加命名空間
添加命名空間

這一切做完之后再回來看這個問題。

報錯信息
報錯信息

接下來的處理方式非常重要,也是當發現一個問題時應該如果應對的方式。

當看到這個問題時,一定要反應出來的第一個點就是為什么別的模塊也進入到了系統的默認模塊。

那么你就需要反應到是系統肯定在哪里設置一個默認訪問模塊。

在單模塊時我們知道了在server文件中加了非常多重要的信息,接下來看看。

默認模塊
默認模塊

果不其然在這個文件中找到了設置了默認的訪問模塊。

當把這個配置取消之后發現又出現了另一個錯誤。

報錯
報錯

給出的信息就是找不到view這服務。

這個問題估計很多小伙伴就對這個錯誤無休無止的進行試錯了,這個問題直接給大家解決方案。

試想一下,多模塊肯定是要進行注冊的,否則根本就無法對應的,這個操作當然也不是命令行直接生成好的,從創建控制器就可以得知,命令行生成文件還是需要進行簡單處理一下才能直接使用的。

咔咔最終是在這個文件中找到了注冊模塊的位置,然后加上我們自己的模塊即可。

注冊模塊
注冊模塊

此時再來進行訪問,依然沒有成功,還是報錯。

報錯信息
報錯信息

真是一步一個坎吶!此時給出的錯誤又是這個模型沒有在容器中。

說實話這個框架的便利之處還沒發現,反正就是一步一步坑。

直接在loader文件中加上下圖代碼即可。

注冊類
注冊類

此時再進行訪問。

萬事大吉
萬事大吉

真的是很不容易啊!經歷了一步一步的摸索終於將多模塊打通了。

四、創建了一個多模塊后都應該做那些操作

第三節是咔咔一邊分析一邊修改代碼,直至最后成功的結果。

為了大家可以直接看到操作流程,重新開了一個目錄給大家方便查閱。

  • phalcon module --name kaka --namespace=kaka --output=app/modules 創建出一個kaka的模塊
  • phalcon controller --name index --output=app/modules/kaka/controllers給kaka模塊創建一個index控制器
  • 修改控制器index和module的命名空間
  • 在文件 app/bootstrap_web.php添加kaka模塊
  • server_web的默認模塊中的默認目錄可不用注釋
  • 在文件 app/config/loader.php中方法 registerClasses進行添加模塊信息。

以上就是創建一個自己的模塊執行流程。

五、總結

本文主要講解的是在Phalcon框架中使用命令行創建出自己的模塊,並且可以進行訪問。

這點內容也是折騰了咔咔近倆個小時,再用點時間爭取把這個框架給弄明白。

堅持學習、堅持寫作、堅持分享是咔咔從業以來一直所秉持的信念。希望在偌大互聯網中咔咔的文章能帶給你一絲絲幫助。我是咔咔,下期見。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM