Skip to content

Visão Geral

andregalastri edited this page Jan 16, 2025 · 3 revisions

Logo do Galastri Framework

Visão Geral

O Galastri Framework tem como premissa a organização estruturada dos arquivos que compoem o site/app de forma que simule a organização de pastas, em que todos os arquivos ficam estruturados em pastas e subpastas seguindo um esquema similar ao das URLs de um servidor web. Isso é definido pela arquitetura que o framework se utiliza.

Arquitetura

Utiliza-se uma variante da arquitetura MVC chamada Thin Model MVC, em que apenas Controllers e Views possuem estruturas e funcionalidades específicas e inerentes ao framework.

Ao menos até o momento, Models não possuem especificidades, podendo ser aplicadas pelo próprio Controller ou implementadas à vontade do usuário.

  • Diretrizes de arquitetura

    • Controllers são arquivos contendo uma classe, cujo nome e funcionalidade devem seguir o conceito de nós de rota.

    • Os métodos das classes Controller devem serguir o conceito de endpoints de rota.

    • Views são os tipos de saída de dados que o framework responde à requisição do servidor, resultado do processamento da requisição pela Controller. Esta saída pode ser um HTML, uma saída JSON ou um arquivo qualquer.

Paradigma de programação

Utiliza-se de uma variação da programação OOP chamada de programação orientada a classes (Class-Oriented Programming), em que os códigos devem estar sempre encapsulados em classes, mas sem a obrigatoriedades de se seguir os princípios da OOP, como polimorfismo ou herança, por exemplo. Ou seja, não há restrição quanto ao uso de classes estáticas, por exemplo.

  • Diretrizes de programação

    No desenvolvimento do framework

    • O código deve estar em uma classe.

    • A classe pode ser estática ou instanciável.

    • Não utilizar herança. Preferir o uso de composição para criar um objeto da classe.

    No uso do framework

    • O código deve estar em uma classe Controller.

    • O processamento dos dados deve ocorrer no método que representa um endpoint do Controller.

    • Ao criar códigos externos para serem importados, não colocar em pastas como app/Controller. Crie novas pastas para organizar seus arquivos adicionais.

    • Cada arquivo deve conter apenas uma classe.

    • Importar usando use seguido do namespacee da classe. Minimizar ao máximo a importação usando require ou include.

1. Início

Visão Geral
Estrutura de pastas
Inicialização
Bootstrap

2. Rotas

Visão Geral
• Lista de configurações
  • Contexto route
  • Contexto node
  • Contexto endpoint

3. Fluxo de dados

4. Classes

Núcleo
   • ErrorHandler
   • Config
   • Definition
    ─ Definição de configuração
   • Router
   • Galastri

Extensões
   • Exception

Módulos
   • VarDump
   • Tools

• Outros
  • Message


Clone this wiki locally