Criando Módulo
Os módulos são a principal forma de estender a funcionalidade do NexoPOS. Eles permitem que os desenvolvedores introduzam novos recursos, personalizem comportamentos existentes ou integrem serviços externos sem modificar a aplicação principal.
Cada módulo opera como uma unidade independente, com sua própria lógica, recursos e configuração. Essa arquitetura modular garante que os desenvolvimentos personalizados permaneçam isolados e compatíveis com futuras atualizações do NexoPOS.
Por design, o NexoPOS trata os módulos como componentes de primeira classe do sistema, permitindo um ecossistema flexível e escalável.
Arquitetura
Um módulo é estruturado como um componente independente dentro da aplicação. Normalmente, inclui:
- Controllers: Handle application logic and user interactions
- Views: Define the user interface rendered within the dashboard
- Routes: Register accessible endpoints and navigation paths
- Assets: Provide JavaScript, CSS, or other frontend resources
- Configuration: Store module-specific settings and metadata
Todos os módulos são armazenados no diretório de módulos e seguem uma estrutura padronizada para garantir consistência em todo o sistema.
Geração de Módulos
O NexoPOS inclui um comando Artisan embutido que ajuda a gerar um novo módulo com a estrutura esperada. Esta é a forma recomendada de iniciar um módulo, pois prepara os arquivos e diretórios base necessários pelo sistema.
Para criar um módulo, abra um terminal a partir da raiz da sua instalação do NexoPOS e execute o seguinte comando:
php artisan make:module
Depois que o comando for executado, o NexoPOS iniciará um processo interativo e solicitará uma série de detalhes.
O primeiro valor a fornecer é o namespace do módulo. Este é o identificador interno do módulo e normalmente é escrito em um formato compacto, como FooBar. Este namespace é usado para criar o diretório do módulo e identificar o módulo internamente
.
Depois disso, o NexoPOS solicita o nome do módulo. Diferentemente do namespace, este é o nome legível para humanos que pode ser exibido aos usuários. Por exemplo, um namespace como FooBar pode usar um nome como The FooBar Module.
O próximo prompt solicita o nome do autor. Isso é usado para identificar quem criou o módulo e é armazenado entre os metadados do módulo.
O NexoPOS solicita então uma breve descrição. Essa descrição explica de forma sucinta a finalidade do módulo e ajuda a identificar seu papel.
Antes de gerar os arquivos, o comando exibe uma tabela de resumo contendo as informações fornecidas, incluindo o namespace, o nome, o autor, a descrição e a versão. Nesta etapa, é necessária uma confirmação. Ao confirmar as informações, o NexoPOS pode prosseguir com a geração.
Depois de confirmado, o sistema cria uma nova pasta dentro do diretório modules usando o namespace fornecido. Por exemplo, se o namespace for FooBar, o módulo gerado será criado em modules/FooBar.
A estrutura gerada inclui vários diretórios e arquivos que preparam o módulo para desenvolvimento adicional. Entre eles, há pastas para configuração, lógica CRUD, eventos, facades, campos, classes HTTP, e-mails, migrações, modelos, providers, ativos públicos, recursos, rotas e serviços. O módulo também inclui arquivos principais, como config.xml e o arquivo da classe principal do módulo.
Esta estrutura gerada fornece a base necessária para começar a desenvolver funcionalidades, mantendo o módulo organizado de acordo com os padrões do NexoPOS.
Recomendação
Para garantir compatibilidade e manutenibilidade, os módulos devem sempre ser criados usando o gerador integrado fornecido pelo NexoPOS.
Isso garante a conformidade com os padrões do sistema e reduz o risco de problemas estruturais ou de integração.