Pular para conteúdo

Guia de Início Rápido

Vamos colocar o BridgeFrameWork para rodar em 5 minutos.

1. Instalação

O BridgeFrameWork é composto por arquivos fonte .pas. Não há instalação de componentes na IDE (BPLs), o que facilita o versionamento e CI/CD.

  1. Clone o repositório ou baixe os fontes.
  2. No seu projeto Delphi, adicione os seguintes caminhos ao Search Path:
    • /Classes
    • /Connection
    • /Controller
    • /MetaData
    • /Model

2. Configurando o Banco de Dados

Crie um arquivo .ini (ou configure via código) com as credenciais:

[CONEXAO]
DriverID=FB ; ou MSSQL, MySQL, Ora, PG
Database=C:\Dados\MEUBANCO.FDB
User_Name=SYSDBA
Password=masterkey
Server=localhost
Port=3050

3. Seu Primeiro CRUD

Passo A: A Entidade

Mapeie sua tabela usando atributos.

type
  [Entity('TB_PRODUTO')]
  TProduto = class
  private
    [Id(True)] // AutoIncrement = True
    [Column('ID')]
    FId: Integer;

    // Column(Name, Size, Nullable)
    [Column('DESCRICAO', 100, False)] 
    FDescricao: String;

    [Column('PRECO')]
    FPreco: Double;
  public
    property Id: Integer read FId write FId;
    property Descricao: String read FDescricao write FDescricao;
    property Preco: Double read FPreco write FPreco;
  end;

Passo B: O Controller

Use o controller genérico para salvar.

var
  LController: IController;
  LProduto: TProduto;
begin
  // O framework localizará automaticamente o Controller apropriado
  LController := TControllerRegistry.Instance.Get<TProduto>;
  LProduto := TProduto.Create;
  try
    LProduto.Descricao := 'Teclado Mecânico';
    LProduto.Preco := 250.00;

    // Insere no banco e preenche o ID
    LController.Insert(LProduto);

    ShowMessage('Produto salvo com ID: ' + LProduto.Id.ToString);
  finally
    LProduto.Free;
  end;
end;

4. Personalização (Opcional)

O BridgeFrameWork permite a extensão das funcionalidades padrão através da herança de TBaseModel e TBaseController. Isso é útil para implementar regras de negócio específicas.

// Exemplo de Model personalizado
type
  TProdutoModel = class(TBaseModel<TProduto>)
  public
    function ValidarEstoque: Boolean;
  end;

// Exemplo de Controller personalizado
type
  TProdutoController = class(TBaseController<TProduto>)
  protected
    procedure BeforeInsert(AObject: TProduto); override;
  end;

{ TProdutoController }

procedure TProdutoController.BeforeInsert(AObject: TProduto);
begin
  inherited;
  if AObject.Preco <= 0 then
    raise Exception.Create('O preço deve ser maior que zero.');
end;

Ao registrar ou solicitar o controller para TProduto, o framework utilizará suas classes personalizadas se elas estiverem registradas.