Arquitetura do formDin - bjverde/formDin GitHub Wiki

Arquitetura

O FormDin compõe-se por um conjunto de componentes de software, que proveem uma arquitetura básica para o desenvolvimento de aplicações web baseadas em um menu principal, formulários de entrada de dados e relatórios.

Leia em: O-Formulário > O Fluxo de Chamada

A estrutura da aplicação utilizada pelo FormDin é composta por três classes a saber: TApplication, TForm e TPDOConnection. Elas são responsáveis pela implementação do padrão MVC ( Model, View e Controller):

  • TApplication (controller) é a responsável por receber as requisições e executar as ações pertinentes.
  • TForm ( view ) é a responsável pela criação dos formulários de entrada de dados.
  • TPDOConnection (model) é a responsável em recuperar e gravar as informações no banco de dados.

Diagrama da Arquitetura Utilizada pelo FormDin

Antiga versão do diagrama do fluxo de chamada do formulário Fluxo

Ultima versão do diagrama do fluxo de chamada do formulário. Fluxo formDin

Estrutura de pastas por tamanho

A lista abaixo foi feita com base nos dados do formDin v4.5.2. A lista mostra apenas algumas pasta

  • base/js 12,5 MB
  • base/js/ckeditor 6,1 MB
  • base/js/jquery 3,6 MB
  • base/js/OpenLayers 1,0 MB
  • base/vendor 4,1 MB
  • base/classes 2,3 MB

Principais classes PHP do formDin, por tamanho

A lista abaixo mostra as principais classes do formDin por tamanho.

  • base/classes/webform/TForm.class.php 333,7 KB
  • base/classes/webform/TGrid.class.php 142,1 KB
  • base/classes/webform/TDAO.class.php 78,1 KB
  • base/classes/webform/TApplication.class.php 54,4 KB
  • base/classes/webform/TPDOConnection.class.php 46,9 KB
  • base/classes/webform/TLayout.class.php 39,3 KB
  • base/classes/webform/TElement.class.php 36,4 KB

Resultado do PHPUnit mostrando a quantidade de linhas de código Resultado do PHPUnit

Risdo do Projeto

Classes Visuais

As classes abaixo são responsáveis por gerar os elementos visuais

  • base/classes/webform/TApplication.class.php
  • base/classes/webform/TElement.class.php
  • base/classes/webform/TForm.class.php
  • base/classes/webform/TGrid.class.php
  • base/classes/webform/TLayout.class.php

Todas as classes visuais derivam de TElement então qualquer elemento visual pode ter os métodos como:

  • setAttribute
  • getAttribute
  • setClass - para setar a classes csss
  • getClass
  • setCss - para setar um propriedade css