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.
- Clone o repositório ou baixe os fontes.
- 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.