rahpt/ci4-module
Composer 安装命令:
composer require rahpt/ci4-module
包简介
Enterprise-grade modular system for CodeIgniter 4 with dependency management and structure validation
README 文档
README
Sistema modular central para CodeIgniter 4 que permite criar aplicações com arquitetura modular, ativação dinâmica de módulos e gerenciamento de dependências.
📋 Índice
- Características
- Requisitos
- Instalação
- Uso Básico
- Arquitetura
- API Reference
- Validadores
- Performance
- Testes
- Contribuindo
✨ Características
Core Features
- ✅ Módulos dinâmicos - Instale e ative módulos sem alterar código
- ✅ Dependency Management - Sistema completo de gerenciamento de dependências com SemVer
- ✅ Structure Validation - Validação automática de estrutura de módulos
- ✅ Instance Caching - Cache automático para melhor performance
- ✅ PSR-4 Autoloading - Descoberta automática de módulos
- ✅ Timestamps - Rastreamento de instalação e ativação
- ✅ Lifecycle Hooks - Suporte a
install(),uninstall(),activate(),deactivate()einitialize().
Security & Performance
- ✅ Type-Safe - PHP 8.1+ com strict types
- ✅ Cached Metadata - Metadados de módulos em cache
- ✅ Logging - Logs detalhados de todas as operações
- ✅ Safe Activation - Validação de dependências antes de ativar
📦 Requisitos
- PHP: >= 8.1
- CodeIgniter: >= 4.5
- Extensions: json, fileinfo
🚀 Instalação
Via Composer
composer require rahpt/ci4-module
Configuração
- Copie o arquivo de configuração:
cp vendor/rahpt/ci4-module/src/Config/Modules.php app/Config/Modules.php
- Configure
app/Config/Modules.php:
<?php namespace Config; use Rahpt\Ci4Module\Config\Modules as BaseModules; class Modules extends BaseModules { public string $basePath = 'Modules'; public string $baseNamespace = 'App\\Modules'; public string $registrationFile = 'modules.json'; }
- Crie o diretório de módulos:
mkdir app/Modules
- Registre o serviço em
app/Config/Services.php:
public static function modules(bool $getShared = true) { if ($getShared) { return static::getSharedInstance('modules'); } return new \Rahpt\Ci4Module\ModuleRegistry(); }
📖 Uso Básico
Criando um Módulo
app/Modules/Dashboard/
├── Config/
│ └── Module.php
├── Controllers/
│ └── DashboardController.php
├── Models/
│ └── DashboardModel.php
├── Views/
│ └── index.php
└── README.md
Config/Module.php:
<?php namespace App\Modules\Dashboard\Config; use Rahpt\Ci4Module\BaseModule; class Module extends BaseModule { public string $name = 'Dashboard'; public string $label = 'Dashboard Principal'; public string $slug = 'dashboard'; public string $version = '1.0.0'; public string $theme = 'adminlte'; // Defina dependências public array $require = [ 'auth' => '^1.0', // SemVer support 'database' => '~2.1' // Tilde, caret, >=, etc ]; public function menu(): array { return [ [ 'label' => 'Dashboard', 'url' => 'dashboard', 'icon' => 'fas fa-tachometer-alt' ] ]; } public function install(): void { // Roda migrações ou seeds } public function uninstall(): void { // Limpa banco de dados } public function settings(): array { // Define configurações dinâmicas return [ 'dashboard' => [ 'label' => 'Configurações de Dashboard', 'fields' => [ 'items_per_page' => ['type' => 'number', 'label' => 'Itens por Página', 'default' => 10] ] ] ]; } }
Gerenciando Módulos
$registry = service('modules'); // Verificar se módulo está instalado if ($registry->isInstalled('Dashboard')) { echo "Dashboard está instalado!"; } // Ativar módulo (com validação de dependências) $registry->activate('dashboard'); // Obter status completo $status = $registry->getModulesWithStatus();
🏗️ Arquitetura
1. ModuleRegistry
Classe central que gerencia o registro de módulos.
Principais Métodos:
getAvailableModules()- Lista todos os módulosactivate(string $module)- Ativa um módulodeactivate(string $module)- Desativa um módulogetInstallPath(string $slug)- Retorna o path absoluto do módulogetModulesWithStatus()- Status completo com timestamps
2. BaseModule
Classe base para módulos. Implementa ModuleInterface.
🔍 Histórico de Versões
[1.2.0] - 2026-02-18
- Novo: Adicionado suporte a hooks de Ciclo de Vida:
uninstall()esettings(). - Arquitetura: Novo método
getInstallPath()noModuleRegistrypara facilitar localização de arquivos. - Melhoria: Sistema de cache de instâncias aprimorado.
- Segurança: Validação de caminhos durante a desinstalação automática.
[1.1.0] - 2026-02-16
- Segurança: Adicionada sanitização rigorosa de slugs de módulos para prevenir manipulação de caminhos.
- Arquitetura: Implementação de sistema de Eventos (Event-Driven) para desacoplamento de pacotes.
- Melhoria: Sistema de logs aprimorado para rastreabilidade de ativação.
[1.0.1] - 2026-02-15
- Estabilização do sistema de autoload.
- Correção de dependências SemVer.
📄 Licença
MIT License
👏 Créditos
Desenvolvido por Rahpt
Versão: 1.2.0
Última Atualização: 2026-02-18
rahpt/ci4-module 适用场景与选型建议
rahpt/ci4-module 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 28 次下载、GitHub Stars 达 0, 最近一次更新时间为 2026 年 02 月 15 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「codeigniter」 「modules」 「modular」 「enterprise」 「architecture」 「codeigniter4」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 rahpt/ci4-module 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 rahpt/ci4-module 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 rahpt/ci4-module 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
This is Paymorrow module for OXID eShop.
Silverstripe content blocks module
The CodeIgniter Redis package
Analysis module for finding problematical shop data.
yii2 swiper slider
An interactive tour through the TYPO3 backend.
统计信息
- 总下载量: 28
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 30
- 依赖项目数: 4
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-02-15