Arquitetura e Tecnologias
Stack técnico, hierarquia de classes, dependências e conexões com bancos de dados.
Diagrama de componentes
Stack
| Camada | Tecnologia | Detalhe |
|---|---|---|
| Linguagem | PHP 7.3 | Namespaces, PDO, Traits |
| Framework | CodeIgniter (MY_Controller) |
Base do backend |
| Banco operacional | MySQL / PDO | PDV, Omni, Trocas |
| Banco E-commerce | SQL Server / PDO sqlsrv: |
Linx LX_ZERO_300 |
| Resposta | JSON via setSubmit() |
Envelope padrão success / message / data |
Hierarquia de classes
Arquivos required
Em controle.php, carregamos três dependências via require_once(APPPATH . '...'):
| UUID | Arquivo | Fornece |
|---|---|---|
4cb18a6c-... |
wosk_webservice.php |
Trait WOSK\Commons\WebService — formata JSON (setSubmit), valida campos e salva logs no MySQL |
592ccfa0-... |
utilOsk.php |
Classe pai — conecta ao MySQL OSK e expõe $this->conexao (PDO) |
0670acec-... |
db_sqlserver.php |
Gerencia conexão PDO com SQL Server (driver sqlsrv:) |
Conexão MySQL
Como configuramos
A classe utilOsk chama getConfiguracao('db_osk_prod') — credenciais armazenadas em Base64 na tabela de configuração do sistema. Em seguida, _setConexao() cria a conexão PDO:
// connection string:
"mysql:host={host};port={porta};dbname={banco}"
// PDO::ATTR_PERSISTENT = true (conexão persistente)
// PDO::ATTR_TIMEOUT = 120 (timeout em segundos)
// charset = UTF-8
Conexão SQL Server
Instanciamos em buscarDadosEcommercePorLoja()
$sqlserver = new \db_sqlserver(false, 'LX_ZERO_300', true);
// false = produção (não homologação)
// 'LX_ZERO_300' = banco Linx
// true = conecta imediatamente
| Ambiente | Host | Porta | Banco |
|---|---|---|---|
| Produção | <HOST_SQLSERVER_PROD> |
<PORTA_PROD> |
LX_ZERO_300 |
| Homologação | <HOST_SQLSERVER_HML> |
<PORTA_HML> |
LINX_HMLG |
Credenciais hardcoded As credenciais do SQL Server ficam em
db_sqlserver.php. Tabelas MySQL utilizadas
| Tabela | Alias | O que fornece |
|---|---|---|
movimentacao |
m | Cabeçalho da transação (tipo, data, situação, módulo) |
movimentacao_detalhe |
md | Itens da venda (produto, qtde, preço) |
movimentacao_nfe |
nf / nfe | Número, série e situação da NF-e |
movimentacao_movimentacao |
mm | Vínculos entre movimentações (troca↔venda, omni↔orçamento) |
pessoa |
v | Nome e código do vendedor |
entidade |
e | Código da filial / loja |
juridica |
j | CNPJ da empresa |
Objetos SQL Server utilizados
| Objeto | Tipo | O que fornece |
|---|---|---|
W_BI_FAT_VENDEDOR_VDK_OMNI_V0 |
View BI | Pedidos e-commerce por vendedor: NF, valor, CPF, filial, pedido site/WMS |
FILIAIS |
Tabela | Cadastro de filiais — usamos para excluir franquias (TIPO_FILIAL <> 'FRANQUIA') |
No comments to display
No comments to display