Phalcon如何创建多模块并能进行访问 《Phalcon入坑指南系列 四》(1)

简介: Phalcon如何创建多模块并能进行访问 《Phalcon入坑指南系列 四》

前言



使用Phalcon框架大多数都是为了其多模块功能来的,今天来聊聊Phalcon多模块如何使用。


依然是一步一个坑,使用这个框架就是痛并快乐着,一边承受坑带来的痛苦,一边享受解决坑的快乐。


一、创建一个多模块应用

使用命令先来创建出一个多模块的项目phalcon create-project kakaModules modules


image.png


可以看到生成的项目只有一个默认的frontend模块。


在frontend模块的index控制器中先来试试访问先,看多模块是如何访问的。


image.png


跟咔咔想的结果是如出一辙,就是默认进的这个模块的index方法。


先按照常理出牌,按照正常方式看是否会正常访问


在app/modules/frontend/controllers/IndexController.php这个文件里边创建一个kaka方法


image.png


进行访问测试


image.png


看来Phalcon还是迎合大众的胃口的。


二、注意:当你多模块无法访问怎么办

还记得在第一期文章中将单模块创建好了之后对Nginx修改了一次配置。


这个也是官方给提供的配置,按理说如果配置好了,后边就是再创建多模块也不会影响什么。


咔咔就是走了不寻常之路,重新配置了一个虚拟域名,但没有修改Nginx配置,所以一直提示无法访问。


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


image.png


可以看到跟上文的访问路径是一致的,就会出现这样的情况。一定要看看是否配置了Nginx。


下图是咔咔的配置,如有需要可以直接复制拿过去使用。


image.png


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


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



三、如何创建属于自己的一个模块

使用命令来创建一个属于自己的模块phalcon module --name kaka --namespace=kaka --output=app/modules


image.png


创建出来的kaka模块,你可以看到在controller中是没有文件的,那么这个文件是否可以用命令来进行创建呢?


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


image.png


文件到手天下我有,先来访问一波看是否可以。


image.png


这可是真无情,但也无妨。根据报错信息可得知KakaModules\Modules\Frontend\Controllers\KakaController handler class cannot be loaded访问路径莫名其妙进入到了系统默认的frontend模块。


先不管这个错误是怎么发生的,先来看看创建出的文件是不是有问题,非常明显的一个问题就是没有命名空间。


先给控制器加上命名空间先。


image.png


此时还需要十分注意的是module这个文件,此文件是非常重要的,同样也要添加对应的命名空间。


image.png


这一切做完之后再回来看这个问题。


image.png



相关文章
|
API PHP 数据库
PHP中哪个框架最适合做API?
在数字化时代,API作为软件应用间通信的桥梁至关重要。本文探讨了PHP中适合API开发的主流框架,包括Laravel、Symfony、Lumen、Slim、Yii和Phalcon,分析了它们的特点和优势,帮助开发者选择合适的框架,提高开发效率、保证接口稳定性和安全性。
688 3
|
网络协议 API PHP
探索PHP的异步编程:使用ReactPHP实现非阻塞I/O
【8月更文挑战第4天】在传统的同步编程模型中,PHP脚本按顺序执行,每个任务必须等待前一个任务完成后才能开始。这种模式在处理I/O密集型操作时,如网络请求或文件读写,会导致性能瓶颈。异步编程提供了一种解决方案,允许多个操作同时进行,从而提高效率。本文将介绍如何使用ReactPHP库在PHP中实现异步编程,并通过代码示例展示其如何优化I/O操作。
659 1
|
11月前
|
NoSQL 测试技术 Redis
Redis批量删除Key的三种方式
Redis批量删除Key是优化数据库性能的重要操作,本文介绍三种高效方法:1) 使用通配符匹配(KEYS/SCAN+DEL),适合不同数据规模;2) Lua脚本实现原子化删除,适用于需要事务保障的场景;3) 管道批量处理提升效率。根据实际需求选择合适方案,注意操作不可逆,建议先备份数据,避免内存溢出或阻塞。
|
API PHP 数据库
Laravel框架下通过DB获取数据并转为数组的方法
通过上述方法,Laravel为开发者提供了一套灵活而强大的工具,用于从数据库中检索数据并将其转换为数组。无论是使用DB Facade直接执行查询,还是利用模型的方法,Laravel都能够简化这一过程,使得代码既简洁又富有表现力。在实际开发中,选择最适合你需求的方法可以有效提高开发效率和应用性能。
496 0
|
SQL JSON 关系型数据库
MYSQL--JSON_OBJECT 和 JSON_ARRAYAGG
MYSQL--JSON_OBJECT 和 JSON_ARRAYAGG
836 0
|
JSON 虚拟化 Docker
Windows10 Docker安装和docker-compose 安装
Windows10 Docker安装和docker-compose 安装
1746 0
|
消息中间件 XML 算法
二、RabbitMQ 应用场景
二、RabbitMQ 应用场景
391 0
|
消息中间件 存储
RabbitMQ如何保证消息发送成功
RabbitMQ如何保证消息发送成功
613 0
RabbitMQ如何保证消息发送成功
|
消息中间件 存储 缓存
RabbitMQ学习(五):RabbitMQ持久化
在上一章内容中我们已经看到了如何处理任务不丢失的情况,但是如何保障当 RabbitMQ 服务停掉后消 息生产者发送过来的消息不丢失呢?默认情况下 RabbitMQ 退出或由于某种原因崩溃时,它将忽视队列 和消息,除非告知它不要这样做。 确保消息不会丢失需要做两件事:我们需要将队列和消息都标 记为持久化。
970 0
RabbitMQ学习(五):RabbitMQ持久化
|
消息中间件 数据库
Rabbmit channel.QueueDeclare参数初识
接触MQ易经有一段时间了,对QueueDeclare一直没有一个全面的认识。
456 0