前言
使用Phalcon框架大多数都是为了其多模块功能来的,今天来聊聊Phalcon多模块如何使用。
依然是一步一个坑,使用这个框架就是痛并快乐着,一边承受坑带来的痛苦,一边享受解决坑的快乐。
一、创建一个多模块应用
使用命令先来创建出一个多模块的项目phalcon create-project kakaModules modules
可以看到生成的项目只有一个默认的frontend模块。
在frontend模块的index控制器中先来试试访问先,看多模块是如何访问的。
跟咔咔想的结果是如出一辙,就是默认进的这个模块的index方法。
先按照常理出牌,按照正常方式看是否会正常访问
在app/modules/frontend/controllers/IndexController.php这个文件里边创建一个kaka方法
进行访问测试
看来Phalcon还是迎合大众的胃口的。
二、注意:当你多模块无法访问怎么办
还记得在第一期文章中将单模块创建好了之后对Nginx修改了一次配置。
这个也是官方给提供的配置,按理说如果配置好了,后边就是再创建多模块也不会影响什么。
咔咔就是走了不寻常之路,重新配置了一个虚拟域名,但没有修改Nginx配置,所以一直提示无法访问。
如果你也出现了如下界面,则看看自己是否配置了Nginx
可以看到跟上文的访问路径是一致的,就会出现这样的情况。一定要看看是否配置了Nginx。
下图是咔咔的配置,如有需要可以直接复制拿过去使用。
最重要的也就只有一行配置
try_files $uri $uri/ /index.php?_url=$uri&$args;
三、如何创建属于自己的一个模块
使用命令来创建一个属于自己的模块phalcon module --name kaka --namespace=kaka --output=app/modules
创建出来的kaka模块,你可以看到在controller中是没有文件的,那么这个文件是否可以用命令来进行创建呢?
那肯定是可以的喽!phalcon controller --name index --output=app/modules/kaka/controllers
文件到手天下我有,先来访问一波看是否可以。
这可是真无情,但也无妨。根据报错信息可得知KakaModules\Modules\Frontend\Controllers\KakaController handler class cannot be loaded访问路径莫名其妙进入到了系统默认的frontend模块。
先不管这个错误是怎么发生的,先来看看创建出的文件是不是有问题,非常明显的一个问题就是没有命名空间。
先给控制器加上命名空间先。
此时还需要十分注意的是module这个文件,此文件是非常重要的,同样也要添加对应的命名空间。
这一切做完之后再回来看这个问题。