rahpt/ci4modules
最新稳定版本:v1.0.1
Composer 安装命令:
composer require rahpt/ci4modules
包简介
Easy Modules in Codeigniter 4
关键字:
README 文档
README
Torne qualquer projeto CodeIgniter 4 verdadeiramente modular – sem precisar editar app/Config/Autoload.php a cada novo módulo.
🐞 Problema – por que o autoloader “nativo” não basta
O CodeIgniter 4 segue estritamente a especificação PSR‑4, na qual cada raiz de namespace precisa apontar para um diretório físico.
Isso traz duas limitações práticas quando tentamos organizar a aplicação em múltiplos módulos:
-
Cadastro manual de cada módulo
Para que o autoloader reconheça um novo módulo é preciso abrirapp/Config/Autoload.phpe acrescentar mais uma linha à matriz$psr4, por exemplo:'App\Blog' => ROOTPATH . 'Modules/Blog', 'App\Admin' => ROOTPATH . 'Modules/Admin', // … +1 linha por módulo
Em projetos com dezenas de módulos isso vira um festival de entradas repetitivas – e cada merge ou deploy fica sujeito a conflitos ou esquecimentos.
-
Subpastas NÃO são reconhecidas automaticamente
Uma tentativa ingênua de “mapear tudo de uma vez” como:'App\Modules' => ROOTPATH . 'Modules',
não funciona: o autoloader passa a considerar Modules o namespace raiz e para de descer para
Modules/Blog,Modules/Admin, etc.
O resultado é que classes, helpers e atéConfig/Routes.phpnão são encontrados, gerando erros 404 ou Class not found.
Resumo: cada novo módulo exige intervenção manual em arquivo de configuração e qualquer esquecimento quebra a aplicação. Escalar (ou simplesmente clonar) um projeto modular torna‑se trabalhoso e propenso a erros.
🚀 Solução
Este pacote Composer, faz alterações simples que altera o autoloader de modo a fazer uma varredura recursiva em qualquer pasta de módulos que você definir (por padrão: APPPATH/Modules).
Cada subpasta de primeiro nível vira um módulo autônomo com sua estrutura própria Controllers/, Models/, Views/, Config/Routes.php etc. – sem necessidade de alterar manualmente o Config/Autoload.php.
my‑project/
├── app/
│ └── …
└── Modules/ ← pasta monitorada
├── Blog/ ← módulo 1
│ ├── Controllers/
│ ├── Models/
│ ├── Views/
│ └── Config/Routes.php
└── Admin/ ← módulo 2
└── …
📦 Instalação
composer require rahpt/ci4modules
Requisito: CodeIgniter 4.3 ou superior.
⚙️ Configuração
1. Habilitar o Service Provider
Após a instalação, execute o comando abaixo para atualizar o arquivo app/Config/Modules.php e escolher a pasta onde seus módulos residirão:
2. (Opcional) Alterar o caminho dos módulos
Padrão:
APPPATH . 'Modules' // ou seja, app/Modules
Para usar outro local (ex.: ROOTPATH . 'modules'), crie ou altere o arquivo app/Config/ModulesTemplate.php:
<?php namespace Config; use Vendor\ModularAutoloader\Config\BaseModules; // ajuste o namespace real class Modules extends BaseModules { /** * Caminho absoluto onde os módulos residem. */ public string $modulesPath = ROOTPATH . 'modules'; // altere nesta linha }
✨ Como funciona
-
Boot – um service provider é registrado pelo Composer.
-
Scan – durante o startup, ele percorre
modulesPath(nível 1). -
Register – para cada subpasta encontrada, gera dinamicamente uma entrada PSR‑4 no autoloader interno do CI4:
<AppNamespace>\<ModuleName>\ => <modulesPath>/<ModuleName>/ -
Profit! Controllers, Models, Configs, Helpers etc. do módulo ficam prontos para uso.
🖥️ Exemplo de rotas em um módulo
Modules/Blog/Config/Routes.php
<?php /** @var \CodeIgniter\Router\RouteCollection $routes */ $routes->group('blog', ['namespace' => 'App\Modules\Blog\Controllers'], static function ($routes) { $routes->get('/', 'PostController::index'); $routes->get('(:segment)', 'PostController::show/$1'); });
Esse arquivo será carregado após o global
app/Config/Routes.php.
🤝 Contribuindo
- Fork → crie sua branch (
git checkout -b feature/minha‑feature) - Commit suas alterações (
git commit -m 'feat: nova feature') - Push (
git push origin feature/minha‑feature) e abra um Pull Request.
🪪 Licença
Distribuído sob a licença MIT. Consulte LICENSE para detalhes.
📬 Dúvidas?
Abra uma Issue ou escreva para ci4modules@rah.pt.
rahpt/ci4modules 适用场景与选型建议
rahpt/ci4modules 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 7 次下载、GitHub Stars 达 2, 最近一次更新时间为 2025 年 04 月 30 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「modules」 「codeigniter4」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 rahpt/ci4modules 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 rahpt/ci4modules 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 rahpt/ci4modules 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
This is Paymorrow module for OXID eShop.
Analysis module for finding problematical shop data.
yii2 swiper slider
An interactive tour through the TYPO3 backend.
JSON Web Token for codeigniter4 authentication.
ORM Database mapping for Codeigniter 4
统计信息
- 总下载量: 7
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 18
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: mit
- 更新时间: 2025-04-30