Compare commits
3 Commits
2981ab64f1
...
feature/mo
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6071550f20 | ||
|
|
9cfa79db4b | ||
|
|
263d513198 |
@@ -3,31 +3,151 @@
|
|||||||
-- ===============================================================================================================
|
-- ===============================================================================================================
|
||||||
CREATE TABLE IF NOT EXISTS public.funcionario_status (
|
CREATE TABLE IF NOT EXISTS public.funcionario_status (
|
||||||
id BIGINT PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
|
id BIGINT PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
|
||||||
descricao VARCHAR(255) NOT NULL UNIQUE
|
descricao VARCHAR(255) NOT NULL,
|
||||||
|
observacao TEXT DEFAULT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
INSERT INTO public.funcionario_status (id, descricao) VALUES
|
INSERT INTO public.funcionario_status (id, descricao, observacao) VALUES
|
||||||
(1, 'Ativo'),
|
(1, 'Ativo', 'Funcionário ativo'),
|
||||||
(3, 'Inativo');
|
(2, 'Inativo', 'Funcionário inativo recebendo benefício do INSS'),
|
||||||
|
(3, 'Inativo', 'Funcionário aposentado'),
|
||||||
|
(4, 'Inativo', 'Funcionário desligado da empresa');
|
||||||
|
|
||||||
SELECT setval(pg_get_serial_sequence('public.funcionario_status','id'), (SELECT MAX(id) FROM public.funcionario_status));
|
SELECT setval(pg_get_serial_sequence('public.funcionario_status','id'), (SELECT MAX(id) FROM public.funcionario_status));
|
||||||
|
|
||||||
|
-- ===============================================================================================================
|
||||||
|
-- Estado Civil Funcionário
|
||||||
|
-- ===============================================================================================================
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS public.funcionario_estado_civil (
|
||||||
|
id BIGINT PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
|
||||||
|
descricao VARCHAR(255) NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
INSERT INTO public.funcionario_estado_civil (id, descricao) VALUES
|
||||||
|
(1, 'Solteiro(a)'),
|
||||||
|
(2, 'Casado(a)'),
|
||||||
|
(3, 'Divorciado(a)'),
|
||||||
|
(4, 'Separado(a)'),
|
||||||
|
(5, 'Viúvo(a)');
|
||||||
|
|
||||||
|
SELECT setval(pg_get_serial_sequence('public.funcionario_estado_civil','id'), (SELECT MAX(id) FROM public.funcionario_estado_civil));
|
||||||
|
|
||||||
|
-- ===============================================================================================================
|
||||||
|
-- Nível de Instrução Funcionário
|
||||||
|
-- ===============================================================================================================
|
||||||
|
CREATE TABLE IF NOT EXISTS public.funcionario_nivel_instrucao (
|
||||||
|
id BIGINT PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
|
||||||
|
codigo_xml VARCHAR(50) NOT NULL,
|
||||||
|
descricao VARCHAR(255) NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
INSERT INTO public.funcionario_nivel_instrucao (id, codigo_xml, descricao) VALUES
|
||||||
|
(1, '01', 'Analfabeto, inclusive o que, embora tenha recebido instrução, não se alfabetizou'),
|
||||||
|
(2, '02', 'Até o 5º ano incompleto do ensino fundamental (antiga 4ª série) ou que se tenha alfabetizado sem ter frequentado escola regular'),
|
||||||
|
(3, '03', '5º ano completo do ensino fundamental'),
|
||||||
|
(4, '04', 'Do 6º ao 9º ano do ensino fundamental incompleto (antiga 5ª a 8ª série)'),
|
||||||
|
(5, '05', 'Ensino fundamental completo'),
|
||||||
|
(6, '06', 'Ensino médio incompleto'),
|
||||||
|
(7, '07', 'Ensino médio completo'),
|
||||||
|
(8, '08', 'Educação superior incompleta'),
|
||||||
|
(9, '09', 'Educação superior completa'),
|
||||||
|
(10, '10', 'Pós-graduação completa'),
|
||||||
|
(11, '11', 'Mestrado completo'),
|
||||||
|
(12, '12', 'Doutorado completo');
|
||||||
|
|
||||||
|
SELECT setval(pg_get_serial_sequence('public.funcionario_nivel_instrucao','id'), (SELECT MAX(id) FROM public.funcionario_nivel_instrucao));
|
||||||
|
|
||||||
|
-- ===============================================================================================================
|
||||||
|
-- Raça/Cor Funcionário
|
||||||
|
-- ===============================================================================================================
|
||||||
|
CREATE TABLE IF NOT EXISTS public.funcionario_raca_cor (
|
||||||
|
id BIGINT PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
|
||||||
|
codigo_xml VARCHAR(50) NOT NULL,
|
||||||
|
descricao VARCHAR(255) NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
INSERT INTO public.funcionario_raca_cor (id, codigo_xml, descricao) VALUES
|
||||||
|
(1, '1', 'Branca'),
|
||||||
|
(2, '2', 'Preta'),
|
||||||
|
(3, '3', 'Parda'),
|
||||||
|
(4, '4', 'Amarela'),
|
||||||
|
(5, '5', 'Indígena'),
|
||||||
|
(6, '6', 'Não informado');
|
||||||
|
|
||||||
|
SELECT setval(pg_get_serial_sequence('public.funcionario_raca_cor','id'), (SELECT MAX(id) FROM public.funcionario_raca_cor));
|
||||||
|
|
||||||
-- ===============================================================================================================
|
-- ===============================================================================================================
|
||||||
-- Funcionário
|
-- Funcionário
|
||||||
-- ===============================================================================================================
|
-- ===============================================================================================================
|
||||||
CREATE TABLE IF NOT EXISTS public.funcionario (
|
CREATE TABLE IF NOT EXISTS public.funcionario (
|
||||||
|
-- Identificadores
|
||||||
id BIGINT PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
|
id BIGINT PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
|
||||||
uuid UUID NOT NULL UNIQUE,
|
uuid UUID NOT NULL UNIQUE,
|
||||||
status_id BIGINT NOT NULL REFERENCES public.funcionario_status(id) ON UPDATE CASCADE ON DELETE RESTRICT,
|
|
||||||
empresa_id BIGINT NOT NULL REFERENCES public.empresa(id) ON UPDATE CASCADE ON DELETE RESTRICT,
|
empresa_id BIGINT NOT NULL REFERENCES public.empresa(id) ON UPDATE CASCADE ON DELETE RESTRICT,
|
||||||
|
|
||||||
|
-- Dados Funcionário
|
||||||
|
status_id BIGINT NOT NULL REFERENCES public.funcionario_status(id) ON UPDATE CASCADE ON DELETE RESTRICT,
|
||||||
nome VARCHAR(255) NOT NULL,
|
nome VARCHAR(255) NOT NULL,
|
||||||
have_nome_social SMALLINT NOT NULL DEFAULT 0,
|
have_nome_social SMALLINT NOT NULL DEFAULT 0,
|
||||||
nome_social VARCHAR(255) DEFAULT NULL,
|
nome_social VARCHAR(255) DEFAULT NULL,
|
||||||
documentCpf VARCHAR(11) NOT NULL,
|
|
||||||
documentPis VARCHAR(11) DEFAULT NULL,
|
-- Documentos
|
||||||
|
document_cpf VARCHAR(11) NOT NULL,
|
||||||
|
document_pis VARCHAR(11) DEFAULT NULL,
|
||||||
|
|
||||||
|
-- Nível de Instrução
|
||||||
|
nivel_instrucao_id BIGINT DEFAULT NULL REFERENCES public.funcionario_nivel_instrucao(id) ON UPDATE CASCADE ON DELETE RESTRICT,
|
||||||
|
|
||||||
|
-- Estado Civil
|
||||||
|
estado_civil_id BIGINT NOT NULL DEFAULT 1 REFERENCES public.funcionario_estado_civil(id) ON UPDATE CASCADE ON DELETE RESTRICT,
|
||||||
|
|
||||||
|
-- Raça/Cor
|
||||||
|
raca_cor_id BIGINT DEFAULT NULL REFERENCES public.funcionario_raca_cor(id) ON UPDATE CASCADE ON DELETE RESTRICT,
|
||||||
|
|
||||||
|
-- Data de Nascimento e Óbito
|
||||||
data_nascimento DATE NOT NULL,
|
data_nascimento DATE NOT NULL,
|
||||||
tipo_filiacao_1 VARCHAR(255) DEFAULT NULL,
|
data_obito DATE DEFAULT NULL,
|
||||||
|
|
||||||
|
-- Sexo
|
||||||
|
sexo CHAR(1) DEFAULT NULL,
|
||||||
|
|
||||||
|
-- Filiação
|
||||||
filiacao_1 VARCHAR(255) DEFAULT NULL,
|
filiacao_1 VARCHAR(255) DEFAULT NULL,
|
||||||
tipo_filiacao_2 VARCHAR(255) DEFAULT NULL,
|
|
||||||
filiacao_2 VARCHAR(255) DEFAULT NULL,
|
filiacao_2 VARCHAR(255) DEFAULT NULL,
|
||||||
|
|
||||||
|
-- Naturalidade
|
||||||
|
naturalidade_pais BIGINT DEFAULT 115 REFERENCES esocial.tab_06(id) ON UPDATE CASCADE ON DELETE RESTRICT,
|
||||||
|
naturalidade_uf CHAR(2) DEFAULT NULL REFERENCES esocial.tab_07(id) ON UPDATE CASCADE ON DELETE RESTRICT,
|
||||||
|
naturalidade_municipio VARCHAR(255) DEFAULT NULL,
|
||||||
|
naturalidade_municipio_codigo_ibge VARCHAR(7) DEFAULT NULL,
|
||||||
|
|
||||||
|
-- Residência
|
||||||
|
endereco_tipo_logradouro BIGINT DEFAULT NULL REFERENCES esocial.tab_20(id) ON UPDATE CASCADE ON DELETE RESTRICT,
|
||||||
|
endereco_descricao_logradouro VARCHAR(100) DEFAULT NULL,
|
||||||
|
endereco_numero_logradouro VARCHAR(10) DEFAULT NULL,
|
||||||
|
endereco_complemento_logradouro VARCHAR(30) DEFAULT NULL,
|
||||||
|
endereco_bairro VARCHAR(90) DEFAULT NULL,
|
||||||
|
endereco_cep VARCHAR(8) DEFAULT NULL,
|
||||||
|
endereco_codigo_municipio_ibge VARCHAR(7) DEFAULT NULL,
|
||||||
|
endereco_uf CHAR(2) DEFAULT NULL,
|
||||||
|
|
||||||
|
-- Endereço no Exterior
|
||||||
|
endereco_exterior_pais_id BIGINT DEFAULT NULL REFERENCES esocial.tab_06(id) ON UPDATE CASCADE ON DELETE RESTRICT,
|
||||||
|
endereco_exterior_descricao_logradouro VARCHAR(100) DEFAULT NULL,
|
||||||
|
endereco_exterior_numero_logradouro VARCHAR(10) DEFAULT NULL,
|
||||||
|
endereco_exterior_complemento_logradouro VARCHAR(30) DEFAULT NULL,
|
||||||
|
endereco_exterior_bairro VARCHAR(90) DEFAULT NULL,
|
||||||
|
endereco_exterior_nome_cidade VARCHAR(50) DEFAULT NULL,
|
||||||
|
endereco_exterior_cep VARCHAR(12) DEFAULT NULL,
|
||||||
|
|
||||||
|
-- Contato
|
||||||
|
email VARCHAR(255) DEFAULT NULL,
|
||||||
|
telefone VARCHAR(20) DEFAULT NULL,
|
||||||
|
celular VARCHAR(20) DEFAULT NULL,
|
||||||
|
|
||||||
|
-- Controle de Registros
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
updated_at TIMESTAMP DEFAULT NULL,
|
||||||
|
deleted_at TIMESTAMP DEFAULT NULL
|
||||||
);
|
);
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
"firebase/php-jwt": "v6.11.1",
|
"firebase/php-jwt": "v6.11.1",
|
||||||
"vlucas/phpdotenv": "v5.6.2",
|
"vlucas/phpdotenv": "v5.6.2",
|
||||||
"symfony/var-dumper": "^v6.4.26",
|
"symfony/var-dumper": "^v6.4.26",
|
||||||
"claudecio/axiumphp": "dev-dev-update-initializing",
|
"claudecio/axiumphp": "dev-feature-updated-router",
|
||||||
"ext-json": "*"
|
"ext-json": "*"
|
||||||
},
|
},
|
||||||
"repositories": [
|
"repositories": [
|
||||||
|
|||||||
14
composer.lock
generated
14
composer.lock
generated
@@ -4,20 +4,20 @@
|
|||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "3e440c7d7c70dfe80c1e1f3c59e6adc5",
|
"content-hash": "f3706a4f041aac68b4feb4e9d952a8a2",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "claudecio/axiumphp",
|
"name": "claudecio/axiumphp",
|
||||||
"version": "dev-dev-update-initializing",
|
"version": "dev-feature-updated-router",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/claudecio/AxiumPHP.git",
|
"url": "https://github.com/claudecio/AxiumPHP.git",
|
||||||
"reference": "ccc3c7de5462371150ea8d82549701519503f9f7"
|
"reference": "c7353947a667ea857b461f2b6251441784a4b8ef"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/claudecio/AxiumPHP/zipball/ccc3c7de5462371150ea8d82549701519503f9f7",
|
"url": "https://api.github.com/repos/claudecio/AxiumPHP/zipball/c7353947a667ea857b461f2b6251441784a4b8ef",
|
||||||
"reference": "ccc3c7de5462371150ea8d82549701519503f9f7",
|
"reference": "c7353947a667ea857b461f2b6251441784a4b8ef",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -35,10 +35,10 @@
|
|||||||
],
|
],
|
||||||
"description": "Meu framework PHP para sistemas MVC modulares.",
|
"description": "Meu framework PHP para sistemas MVC modulares.",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/claudecio/AxiumPHP/tree/dev-update-initializing",
|
"source": "https://github.com/claudecio/AxiumPHP/tree/feature-updated-router",
|
||||||
"issues": "https://github.com/claudecio/AxiumPHP/issues"
|
"issues": "https://github.com/claudecio/AxiumPHP/issues"
|
||||||
},
|
},
|
||||||
"time": "2025-10-18T18:31:17+00:00"
|
"time": "2025-10-26T20:05:19+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "firebase/php-jwt",
|
"name": "firebase/php-jwt",
|
||||||
|
|||||||
@@ -687,4 +687,265 @@ INSERT INTO esocial.tab_06 (id, descricao, data_criacao, data_extincao) VALUES
|
|||||||
(995, 'Bancos Centrais', NULL, NULL),
|
(995, 'Bancos Centrais', NULL, NULL),
|
||||||
(997, 'Organizações Internacionais', NULL, NULL);
|
(997, 'Organizações Internacionais', NULL, NULL);
|
||||||
|
|
||||||
SELECT setval(pg_get_serial_sequence('esocial.tab_06','id'), (SELECT MAX(id) FROM esocial.tab_06));
|
SELECT setval(pg_get_serial_sequence('esocial.tab_06','id'), (SELECT MAX(id) FROM esocial.tab_06));
|
||||||
|
|
||||||
|
-- ===============================================================================================================
|
||||||
|
-- Tabela 09 - Tipos de arquivos do eSocial
|
||||||
|
-- ===============================================================================================================
|
||||||
|
CREATE TABLE IF NOT EXISTS esocial.tab_09 (
|
||||||
|
id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
||||||
|
codigo_xml VARCHAR(50) NOT NULL,
|
||||||
|
descricao VARCHAR(255) NOT NULL,
|
||||||
|
data_inicio DATE DEFAULT NULL,
|
||||||
|
data_fim DATE DEFAULT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
INSERT INTO esocial.tab_09 (id, codigo_xml, descricao, data_inicio, data_fim) VALUES
|
||||||
|
(1, 'S-1000', 'Informações do Empregador/Contribuinte/Órgão Público', '2014-01-01', NULL),
|
||||||
|
(2, 'S-1005', 'Tabela de Estabelecimentos, Obras ou Unidades de Órgãos Públicos', '2014-01-01', NULL),
|
||||||
|
(3, 'S-1010', 'Tabela de Rubricas', '2014-01-01', NULL),
|
||||||
|
(4, 'S-1020', 'Tabela de Lotações Tributárias', '2014-01-01', NULL),
|
||||||
|
(5, 'S-1070', 'Tabela de Processos Administrativos/Judiciais', '2014-01-01', NULL),
|
||||||
|
(6, 'S-1200', 'Remuneração de Trabalhador vinculado ao Regime Geral de Previd. Social', '2014-01-01', NULL),
|
||||||
|
(7, 'S-1202', 'Remuneração de Servidor vinculado ao Regime Próprio de Previd. Social', '2022-08-22', NULL),
|
||||||
|
(8, 'S-1207', 'Benefícios - Entes Públicos', '2022-08-22', NULL),
|
||||||
|
(9, 'S-1210', 'Pagamentos de Rendimentos do Trabalho', '2014-01-01', NULL),
|
||||||
|
(10, 'S-1260', 'Comercialização da Produção Rural Pessoa Física', '2014-01-01', NULL),
|
||||||
|
(11, 'S-1270', 'Contratação de Trabalhadores Avulsos Não Portuários', '2014-01-01', NULL),
|
||||||
|
(12, 'S-1280', 'Informações Complementares aos Eventos Periódicos', '2014-01-01', NULL),
|
||||||
|
(13, 'S-1298', 'Reabertura dos Eventos Periódicos', '2014-01-01', NULL),
|
||||||
|
(14, 'S-1299', 'Fechamento dos Eventos Periódicos', '2014-01-01', NULL),
|
||||||
|
(15, 'S-2190', 'Registro Preliminar de Trabalhador', '2014-01-01', NULL),
|
||||||
|
(16, 'S-2200', 'Cadastramento Inicial do Vínculo e Admissão/Ingresso de Trabalhador', '2014-01-01', NULL),
|
||||||
|
(17, 'S-2205', 'Alteração de Dados Cadastrais do Trabalhador', '2014-01-01', NULL),
|
||||||
|
(18, 'S-2206', 'Alteração de Contrato de Trabalho/Relação Estatutária', '2014-01-01', NULL),
|
||||||
|
(19, 'S-2210', 'Comunicação de Acidente de Trabalho', '2021-10-13', NULL),
|
||||||
|
(20, 'S-2220', 'Monitoramento da Saúde do Trabalhador', '2021-10-13', NULL),
|
||||||
|
(21, 'S-2221', 'Exame Toxicológico do Motorista Profissional Empregado', '2024-08-01', NULL),
|
||||||
|
(22, 'S-2230', 'Afastamento Temporário', '2014-01-01', NULL),
|
||||||
|
(23, 'S-2231', 'Cessão/Exercício em Outro Órgão', '2021-07-19', NULL),
|
||||||
|
(24, 'S-2240', 'Condições Ambientais do Trabalho - Agentes Nocivos', '2021-10-13', NULL),
|
||||||
|
(25, 'S-2298', 'Reintegração/Outros Provimentos', '2014-01-01', NULL),
|
||||||
|
(26, 'S-2299', 'Desligamento', '2014-01-01', NULL),
|
||||||
|
(27, 'S-2300', 'Trabalhador Sem Vínculo de Emprego/Estatutário - Início', '2014-01-01', NULL),
|
||||||
|
(28, 'S-2306', 'Trabalhador Sem Vínculo de Emprego/Estatutário - Alteração Contratual', '2014-01-01', NULL),
|
||||||
|
(29, 'S-2399', 'Trabalhador Sem Vínculo de Emprego/Estatutário - Término', '2014-01-01', NULL),
|
||||||
|
(30, 'S-2400', 'Cadastro de Beneficiário - Entes Públicos - Início', '2021-11-22', NULL),
|
||||||
|
(31, 'S-2405', 'Cadastro de Beneficiário - Entes Públicos - Alteração', '2021-11-22', NULL),
|
||||||
|
(32, 'S-2410', 'Cadastro de Benefício - Entes Públicos - Início', '2021-11-22', NULL),
|
||||||
|
(33, 'S-2416', 'Cadastro de Benefício - Entes Públicos - Alteração', '2021-11-22', NULL),
|
||||||
|
(34, 'S-2418', 'Reativação de Benefício - Entes Públicos', '2021-11-22', NULL),
|
||||||
|
(35, 'S-2420', 'Cadastro de Benefício - Entes Públicos - Término', '2021-11-22', NULL),
|
||||||
|
(36, 'S-2500', 'Processo Trabalhista', '2023-10-01', NULL),
|
||||||
|
(37, 'S-2501', 'Informações de Tributos Decorrentes de Processo Trabalhista', '2023-10-01', NULL),
|
||||||
|
(38, 'S-2555', 'Solicitação de Consolidação das Informações de Tributos Decorrentes de Processo Trabalhista', '2024-12-01', NULL),
|
||||||
|
(39, 'S-3000', 'Exclusão de Eventos', '2014-01-01', NULL),
|
||||||
|
(40, 'S-3500', 'Exclusão de Eventos - Processo Trabalhista', '2023-10-01', NULL),
|
||||||
|
(41, 'S-5001', 'Informações das Contribuições Sociais por Trabalhador', '2014-01-01', NULL),
|
||||||
|
(42, 'S-5002', 'Imposto de Renda Retido na Fonte por Trabalhador', '2014-01-01', NULL),
|
||||||
|
(43, 'S-5003', 'Informações do FGTS por Trabalhador', '2018-05-01', NULL),
|
||||||
|
(44, 'S-5011', 'Informações das Contribuições Sociais Consolidadas por Contribuinte', '2014-01-01', NULL),
|
||||||
|
(45, 'S-5012', 'Imposto de Renda Retido na Fonte Consolidado por Contribuinte', '2023-01-16', NULL),
|
||||||
|
(46, 'S-5013', 'Informações do FGTS Consolidadas por Contribuinte', '2018-05-01', NULL),
|
||||||
|
(47, 'S-5501', 'Informações Consolidadas de Tributos Decorrentes de Processo Trabalhista', '2023-10-01', NULL),
|
||||||
|
(48, 'S-5503', 'Informações do FGTS por Trabalhador em Processo Trabalhista', '2023-11-20', NULL),
|
||||||
|
(49, 'S-8200', 'Anotação Judicial do Vínculo', '2014-01-01', NULL),
|
||||||
|
(50, 'S-8299', 'Baixa Judicial do Vínculo', '2019-09-24', NULL);
|
||||||
|
|
||||||
|
SELECT setval(pg_get_serial_sequence('esocial.tab_09','id'), (SELECT MAX(id) FROM esocial.tab_09));
|
||||||
|
|
||||||
|
-- ===============================================================================================================
|
||||||
|
-- Tabela 20 - Tipos de Logradouros
|
||||||
|
-- ===============================================================================================================
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS esocial.tab_20 (
|
||||||
|
id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
||||||
|
codigo_xml VARCHAR(50) NOT NULL,
|
||||||
|
descricao VARCHAR(255) NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
INSERT INTO esocial.tab_20 (id, codigo_xml, descricao) VALUES
|
||||||
|
(1, 'A', 'Área'),
|
||||||
|
(2, 'AC', 'Acesso'),
|
||||||
|
(3, 'ACA', 'Acampamento'),
|
||||||
|
(4, 'ACL', 'Acesso Local'),
|
||||||
|
(5, 'AD', 'Adro'),
|
||||||
|
(6, 'AE', 'Área Especial'),
|
||||||
|
(7, 'AER', 'Aeroporto'),
|
||||||
|
(8, 'AL', 'Alameda'),
|
||||||
|
(9, 'ALD', 'Aldeia'),
|
||||||
|
(10, 'AMD', 'Avenida Marginal Direita'),
|
||||||
|
(11, 'AME', 'Avenida Marginal Esquerda'),
|
||||||
|
(12, 'AN', 'Anel Viário'),
|
||||||
|
(13, 'ANT', 'Antiga Estrada'),
|
||||||
|
(14, 'ART', 'Artéria'),
|
||||||
|
(15, 'AT', 'Alto'),
|
||||||
|
(16, 'ATL', 'Atalho'),
|
||||||
|
(17, 'A V', 'Área Verde'),
|
||||||
|
(18, 'AV', 'Avenida'),
|
||||||
|
(19, 'AVC', 'Avenida Contorno'),
|
||||||
|
(20, 'AVM', 'Avenida Marginal'),
|
||||||
|
(21, 'AVV', 'Avenida Velha'),
|
||||||
|
(22, 'BAL', 'Balneário'),
|
||||||
|
(23, 'BC', 'Beco'),
|
||||||
|
(24, 'BCO', 'Buraco'),
|
||||||
|
(25, 'BEL', 'Belvedere'),
|
||||||
|
(26, 'BL', 'Bloco'),
|
||||||
|
(27, 'BLO', 'Balão'),
|
||||||
|
(28, 'BLS', 'Blocos'),
|
||||||
|
(29, 'BLV', 'Bulevar'),
|
||||||
|
(30, 'BSQ', 'Bosque'),
|
||||||
|
(31, 'BVD', 'Boulevard'),
|
||||||
|
(32, 'BX', 'Baixa'),
|
||||||
|
(33, 'C', 'Cais'),
|
||||||
|
(34, 'CAL', 'Calçada'),
|
||||||
|
(35, 'CAM', 'Caminho'),
|
||||||
|
(36, 'CAN', 'Canal'),
|
||||||
|
(37, 'CH', 'Chácara'),
|
||||||
|
(38, 'CHA', 'Chapadão'),
|
||||||
|
(39, 'CIC', 'Ciclovia'),
|
||||||
|
(40, 'CIR', 'Circular'),
|
||||||
|
(41, 'CJ', 'Conjunto'),
|
||||||
|
(42, 'CJM', 'Conjunto Mutirão'),
|
||||||
|
(43, 'CMP', 'Complexo Viário'),
|
||||||
|
(44, 'COL', 'Colônia'),
|
||||||
|
(45, 'COM', 'Comunidade'),
|
||||||
|
(46, 'CON', 'Condomínio'),
|
||||||
|
(47, 'COND', 'Condomínio'),
|
||||||
|
(48, 'COR', 'Corredor'),
|
||||||
|
(49, 'CPO', 'Campo'),
|
||||||
|
(50, 'CRG', 'Córrego'),
|
||||||
|
(51, 'CTN', 'Contorno'),
|
||||||
|
(52, 'DSC', 'Descida'),
|
||||||
|
(53, 'DSV', 'Desvio'),
|
||||||
|
(54, 'DT', 'Distrito'),
|
||||||
|
(55, 'EB', 'Entre Bloco'),
|
||||||
|
(56, 'EIM', 'Estrada Intermunicipal'),
|
||||||
|
(57, 'ENS', 'Enseada'),
|
||||||
|
(58, 'ENT', 'Entrada Particular'),
|
||||||
|
(59, 'EQ', 'Entre Quadra'),
|
||||||
|
(60, 'ESC', 'Escada'),
|
||||||
|
(61, 'ESD', 'Escadaria'),
|
||||||
|
(62, 'ESE', 'Estrada Estadual'),
|
||||||
|
(63, 'ESI', 'Estrada Vicinal'),
|
||||||
|
(64, 'ESL', 'Estrada de Ligação'),
|
||||||
|
(65, 'ESM', 'Estrada Municipal'),
|
||||||
|
(66, 'ESP', 'Esplanada'),
|
||||||
|
(67, 'ESS', 'Estrada de Servidão'),
|
||||||
|
(68, 'EST', 'Estrada'),
|
||||||
|
(69, 'ESV', 'Estrada Velha'),
|
||||||
|
(70, 'ETA', 'Estrada Antiga'),
|
||||||
|
(71, 'ETC', 'Estação'),
|
||||||
|
(72, 'ETD', 'Estádio'),
|
||||||
|
(73, 'ETN', 'Estância'),
|
||||||
|
(74, 'ETP', 'Estrada Particular'),
|
||||||
|
(75, 'ETT', 'Estacionamento'),
|
||||||
|
(76, 'EVA', 'Evangélica'),
|
||||||
|
(77, 'EVD', 'Elevada'),
|
||||||
|
(78, 'EX', 'Eixo Industrial'),
|
||||||
|
(79, 'FAV', 'Favela'),
|
||||||
|
(80, 'FAZ', 'Fazenda'),
|
||||||
|
(81, 'FER', 'Ferrovia'),
|
||||||
|
(82, 'FNT', 'Fonte'),
|
||||||
|
(83, 'FRA', 'Feira'),
|
||||||
|
(84, 'FTE', 'Forte'),
|
||||||
|
(85, 'GAL', 'Galeria'),
|
||||||
|
(86, 'GJA', 'Granja'),
|
||||||
|
(87, 'HAB', 'Núcleo Habitacional'),
|
||||||
|
(88, 'IA', 'Ilha'),
|
||||||
|
(89, 'IGP', 'Igarapé'),
|
||||||
|
(90, 'IND', 'Indeterminado'),
|
||||||
|
(91, 'IOA', 'Ilhota'),
|
||||||
|
(92, 'JD', 'Jardim'),
|
||||||
|
(93, 'JDE', 'Jardinete'),
|
||||||
|
(94, 'LD', 'Ladeira'),
|
||||||
|
(95, 'LGA', 'Lagoa'),
|
||||||
|
(96, 'LGO', 'Lago'),
|
||||||
|
(97, 'LOT', 'Loteamento'),
|
||||||
|
(98, 'LRG', 'Largo'),
|
||||||
|
(99, 'LT', 'Lote'),
|
||||||
|
(100, 'MER', 'Mercado'),
|
||||||
|
(101, 'MNA', 'Marina'),
|
||||||
|
(102, 'MOD', 'Modulo'),
|
||||||
|
(103, 'MRG', 'Projeção'),
|
||||||
|
(104, 'MRO', 'Morro'),
|
||||||
|
(105, 'MTE', 'Monte'),
|
||||||
|
(106, 'NUC', 'Núcleo'),
|
||||||
|
(107, 'NUR', 'Núcleo Rural'),
|
||||||
|
(108, 'O', 'Outros'),
|
||||||
|
(109, 'OUT', 'Outeiro'),
|
||||||
|
(110, 'PAR', 'Paralela'),
|
||||||
|
(111, 'PAS', 'Passeio'),
|
||||||
|
(112, 'PAT', 'Pátio'),
|
||||||
|
(113, 'PC', 'Praça'),
|
||||||
|
(114, 'PCE', 'Praça de Esportes'),
|
||||||
|
(115, 'PDA', 'Parada'),
|
||||||
|
(116, 'PDO', 'Paradouro'),
|
||||||
|
(117, 'PNT', 'Ponta'),
|
||||||
|
(118, 'PR', 'Praia'),
|
||||||
|
(119, 'PRL', 'Prolongamento'),
|
||||||
|
(120, 'PRM', 'Parque Municipal'),
|
||||||
|
(121, 'PRQ', 'Parque'),
|
||||||
|
(122, 'PRR', 'Parque Residencial'),
|
||||||
|
(123, 'PSA', 'Passarela'),
|
||||||
|
(124, 'PSG', 'Passagem'),
|
||||||
|
(125, 'PSP', 'Passagem de Pedestre'),
|
||||||
|
(126, 'PSS', 'Passagem Subterrânea'),
|
||||||
|
(127, 'PTE', 'Ponte'),
|
||||||
|
(128, 'PTO', 'Porto'),
|
||||||
|
(129, 'Q', 'Quadra'),
|
||||||
|
(130, 'QTA', 'Quinta'),
|
||||||
|
(131, 'QTS', 'Quintas'),
|
||||||
|
(132, 'R', 'Rua'),
|
||||||
|
(133, 'R I', 'Rua Integração'),
|
||||||
|
(134, 'R L', 'Rua de Ligação'),
|
||||||
|
(135, 'R P', 'Rua Particular'),
|
||||||
|
(136, 'R V', 'Rua Velha'),
|
||||||
|
(137, 'RAM', 'Ramal'),
|
||||||
|
(138, 'RCR', 'Recreio'),
|
||||||
|
(139, 'REC', 'Recanto'),
|
||||||
|
(140, 'RER', 'Retiro'),
|
||||||
|
(141, 'RES', 'Residencial'),
|
||||||
|
(142, 'RET', 'Reta'),
|
||||||
|
(143, 'RLA', 'Ruela'),
|
||||||
|
(144, 'RMP', 'Rampa'),
|
||||||
|
(145, 'ROA', 'Rodo Anel'),
|
||||||
|
(146, 'ROD', 'Rodovia'),
|
||||||
|
(147, 'ROT', 'Rotula'),
|
||||||
|
(148, 'RPE', 'Rua de Pedestre'),
|
||||||
|
(149, 'RPR', 'Margem'),
|
||||||
|
(150, 'RTN', 'Retorno'),
|
||||||
|
(151, 'RTT', 'Rotatória'),
|
||||||
|
(152, 'SEG', 'Segunda Avenida'),
|
||||||
|
(153, 'SIT', 'Sitio'),
|
||||||
|
(154, 'SRV', 'Servidão'),
|
||||||
|
(155, 'ST', 'Setor'),
|
||||||
|
(156, 'SUB', 'Subida'),
|
||||||
|
(157, 'TCH', 'Trincheira'),
|
||||||
|
(158, 'TER', 'Terminal'),
|
||||||
|
(159, 'TR', 'Trecho'),
|
||||||
|
(160, 'TRV', 'Trevo'),
|
||||||
|
(161, 'TUN', 'Túnel'),
|
||||||
|
(162, 'TV', 'Travessa'),
|
||||||
|
(163, 'TVP', 'Travessa Particular'),
|
||||||
|
(164, 'TVV', 'Travessa Velha'),
|
||||||
|
(165, 'UNI', 'Unidade'),
|
||||||
|
(166, 'V', 'Via'),
|
||||||
|
(167, 'V C', 'Via Coletora'),
|
||||||
|
(168, 'V L', 'Via Local'),
|
||||||
|
(169, 'VAC', 'Via de Acesso'),
|
||||||
|
(170, 'VAL', 'Vala'),
|
||||||
|
(171, 'VCO', 'Via Costeira'),
|
||||||
|
(172, 'VD', 'Viaduto'),
|
||||||
|
(173, 'V-E', 'Via Expressa'),
|
||||||
|
(174, 'VER', 'Vereda'),
|
||||||
|
(175, 'VEV', 'Via Elevado'),
|
||||||
|
(176, 'VL', 'Vila'),
|
||||||
|
(177, 'VLA', 'Viela'),
|
||||||
|
(178, 'VLE', 'Vale'),
|
||||||
|
(179, 'VLT', 'Via Litorânea'),
|
||||||
|
(180, 'VPE', 'Via de Pedestre'),
|
||||||
|
(181, 'VRT', 'Variante'),
|
||||||
|
(182, 'ZIG', 'Zigue-Zague');
|
||||||
|
|
||||||
|
SELECT setval(pg_get_serial_sequence('esocial.tab_20','id'), (SELECT MAX(id) FROM esocial.tab_20));
|
||||||
334
vendor/claudecio/axiumphp/src/Core/Router.php
vendored
334
vendor/claudecio/axiumphp/src/Core/Router.php
vendored
@@ -2,27 +2,19 @@
|
|||||||
namespace AxiumPHP\Core;
|
namespace AxiumPHP\Core;
|
||||||
|
|
||||||
use Exception;
|
use Exception;
|
||||||
|
use AxiumPHP\Helpers\RequestHelper;
|
||||||
|
|
||||||
class Router {
|
class Router {
|
||||||
private static $routes = [];
|
private static $routes = [];
|
||||||
private static $params = [];
|
private static $params = [];
|
||||||
private static $ROUTER_MODE = null;
|
private static $ROUTER_MODE = null;
|
||||||
private static $APP_SYS_MODE = null;
|
private static $APP_SYS_MODE = null;
|
||||||
private static $ROUTER_ALLOWED_ORIGINS = ['*'];
|
private static string $basePath = '';
|
||||||
private static $currentGroupPrefix = '';
|
private static $currentGroupPrefix = '';
|
||||||
private static $currentGroupMiddlewares = [];
|
private static $currentGroupMiddlewares = [];
|
||||||
private static array $requiredConstants = [
|
private static $ROUTER_ALLOWED_ORIGINS = ['*'];
|
||||||
'ROUTER_MODE',
|
private static array $requiredConstants = ['ROUTER_MODE', 'APP_SYS_MODE'];
|
||||||
'APP_SYS_MODE'
|
private static array $allowedHttpRequests = ['GET','POST','PUT','PATCH','DELETE','OPTIONS'];
|
||||||
];
|
|
||||||
private static array $allowedHttpRequests = [
|
|
||||||
'GET',
|
|
||||||
'POST',
|
|
||||||
'PUT',
|
|
||||||
'PATCH',
|
|
||||||
'DELETE',
|
|
||||||
'OPTIONS'
|
|
||||||
];
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Construtor que vai garantir que as constantes necessárias estejam definidas antes de
|
* Construtor que vai garantir que as constantes necessárias estejam definidas antes de
|
||||||
@@ -32,6 +24,11 @@
|
|||||||
// Verificar as constantes no momento da criação da instância
|
// Verificar as constantes no momento da criação da instância
|
||||||
self::checkRequiredConstant();
|
self::checkRequiredConstant();
|
||||||
|
|
||||||
|
// Verifica se tem diretório base
|
||||||
|
if(defined(constant_name: 'ROUTER_BASE_PATH')) {
|
||||||
|
self::$basePath = ROUTER_BASE_PATH;
|
||||||
|
}
|
||||||
|
|
||||||
// Define constante
|
// Define constante
|
||||||
self::$ROUTER_MODE = strtoupper(string: ROUTER_MODE);
|
self::$ROUTER_MODE = strtoupper(string: ROUTER_MODE);
|
||||||
self::$APP_SYS_MODE = strtoupper(string: APP_SYS_MODE);
|
self::$APP_SYS_MODE = strtoupper(string: APP_SYS_MODE);
|
||||||
@@ -74,99 +71,26 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Adiciona uma rota com método GET à lista de rotas da aplicação.
|
// =======================
|
||||||
*
|
// Métodos HTTP
|
||||||
* Este método é um atalho para adicionar rotas com o método HTTP GET. Ele
|
// =======================
|
||||||
* chama o método `addRoute` internamente, passando os parâmetros
|
|
||||||
* fornecidos e o método 'GET'.
|
|
||||||
*
|
|
||||||
* @param string $uri O caminho da rota (ex: '/usuarios', '/produtos').
|
|
||||||
* @param array $handler Um array contendo o nome do controlador e o nome da ação
|
|
||||||
* que devem ser executados quando a rota for
|
|
||||||
* corresponder (ex: ['UsuarioController', 'index']).
|
|
||||||
* @param array $middlewares Um array opcional contendo os nomes dos middlewares que
|
|
||||||
* devem ser executados antes do handler da rota.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public static function GET(string $uri, array $handler, array $middlewares = []): void {
|
public static function GET(string $uri, array $handler, array $middlewares = []): void {
|
||||||
self::addRoute(method: "GET", uri: $uri, handler: $handler, middlewares: $middlewares);
|
self::addRoute(method: "GET", uri: $uri, handler: $handler, middlewares: $middlewares);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Adiciona uma rota com método POST à lista de rotas da aplicação.
|
|
||||||
*
|
|
||||||
* Este método é um atalho para adicionar rotas com o método HTTP POST. Ele
|
|
||||||
* chama o método `addRoute` internamente, passando os parâmetros
|
|
||||||
* fornecidos e o método 'POST'.
|
|
||||||
*
|
|
||||||
* @param string $uri O caminho da rota (ex: '/usuarios', '/produtos').
|
|
||||||
* @param array $handler Um array contendo o nome do controlador e o nome da ação
|
|
||||||
* que devem ser executados quando a rota for
|
|
||||||
* corresponder (ex: ['UsuarioController', 'salvar']).
|
|
||||||
* @param array $middlewares Um array opcional contendo os nomes dos middlewares que
|
|
||||||
* devem ser executados antes do handler da rota.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public static function POST(string $uri, array $handler, array $middlewares = []): void {
|
public static function POST(string $uri, array $handler, array $middlewares = []): void {
|
||||||
self::addRoute(method: "POST", uri: $uri, handler: $handler, middlewares: $middlewares);
|
self::addRoute(method: "POST", uri: $uri, handler: $handler, middlewares: $middlewares);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Adiciona uma rota com método PUT à lista de rotas da aplicação.
|
|
||||||
*
|
|
||||||
* Este método é um atalho para adicionar rotas com o método HTTP PUT. Ele
|
|
||||||
* chama o método `addRoute` internamente, passando os parâmetros
|
|
||||||
* fornecidos e o método 'PUT'.
|
|
||||||
*
|
|
||||||
* @param string $uri O caminho da rota (ex: '/usuarios', '/produtos').
|
|
||||||
* @param array $handler Um array contendo o nome do controlador e o nome da ação
|
|
||||||
* que devem ser executados quando a rota for
|
|
||||||
* corresponder (ex: ['UsuarioController', 'salvar']).
|
|
||||||
* @param array $middlewares Um array opcional contendo os nomes dos middlewares que
|
|
||||||
* devem ser executados antes do handler da rota.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public static function PUT(string $uri, array $handler, array $middlewares = []): void {
|
public static function PUT(string $uri, array $handler, array $middlewares = []): void {
|
||||||
self::addRoute(method: "PUT", uri: $uri, handler: $handler, middlewares: $middlewares);
|
self::addRoute(method: "PUT", uri: $uri, handler: $handler, middlewares: $middlewares);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Adiciona uma nova rota que responde a requisições PATCH.
|
|
||||||
*
|
|
||||||
* Este é um método estático de conveniência que simplifica o registro de rotas
|
|
||||||
* para o método HTTP PATCH. Ele delega a tarefa principal para o método
|
|
||||||
* privado `addRoute`, passando o método HTTP, a URI, a função de manipulação
|
|
||||||
* (`handler`) e quaisquer middlewares associados.
|
|
||||||
*
|
|
||||||
* @param string $uri A URI da rota (ex: '/api/resource/{id}').
|
|
||||||
* @param array $handler Um array de dois elementos que define o manipulador da rota: o nome da classe do controlador e o nome do método a ser executado.
|
|
||||||
* @param array $middlewares Um array opcional de middlewares a serem executados antes do manipulador da rota.
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public static function PATCH(string $uri, array $handler, array $middlewares = []): void {
|
public static function PATCH(string $uri, array $handler, array $middlewares = []): void {
|
||||||
self::addRoute(method: "PATCH", uri: $uri, handler: $handler, middlewares: $middlewares);
|
self::addRoute(method: "PATCH", uri: $uri, handler: $handler, middlewares: $middlewares);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Adiciona uma rota com método DELETE à lista de rotas da aplicação.
|
|
||||||
*
|
|
||||||
* Este método é um atalho para adicionar rotas com o método HTTP DELETE. Ele
|
|
||||||
* chama o método `addRoute` internamente, passando os parâmetros
|
|
||||||
* fornecidos e o método 'DELETE'.
|
|
||||||
*
|
|
||||||
* @param string $uri O caminho da rota (ex: '/usuarios', '/produtos').
|
|
||||||
* @param array $handler Um array contendo o nome do controlador e o nome da ação
|
|
||||||
* que devem ser executados quando a rota for
|
|
||||||
* corresponder (ex: ['UsuarioController', 'salvar']).
|
|
||||||
* @param array $middlewares Um array opcional contendo os nomes dos middlewares que
|
|
||||||
* devem ser executados antes do handler da rota.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public static function DELETE(string $uri, array $handler, array $middlewares = []): void {
|
public static function DELETE(string $uri, array $handler, array $middlewares = []): void {
|
||||||
self::addRoute(method: "DELETE", uri: $uri, handler: $handler, middlewares: $middlewares);
|
self::addRoute(method: "DELETE", uri: $uri, handler: $handler, middlewares: $middlewares);
|
||||||
}
|
}
|
||||||
@@ -189,7 +113,7 @@
|
|||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
private static function addRoute(string $method, string $uri, array $handler, array $middlewares = []): void {
|
private static function addRoute(string $method, string $uri, array $handler, array $middlewares = []): void {
|
||||||
self::$routes[] = [
|
self::$routes[$method][] = [
|
||||||
'method' => strtoupper(string: $method),
|
'method' => strtoupper(string: $method),
|
||||||
'path' => '/' . trim(string: self::$currentGroupPrefix . '/' . trim(string: $uri, characters: '/'), characters: '/'),
|
'path' => '/' . trim(string: self::$currentGroupPrefix . '/' . trim(string: $uri, characters: '/'), characters: '/'),
|
||||||
'controller' => $handler[0],
|
'controller' => $handler[0],
|
||||||
@@ -198,6 +122,46 @@
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Redireciona para um caminho específico.
|
||||||
|
*
|
||||||
|
* Este método estático constrói uma URL de redirecionamento com base no
|
||||||
|
* caminho fornecido e no `basePath` configurado. Ele garante que o
|
||||||
|
* `basePath` e o `path` comecem com uma barra (`/`), monta a URL
|
||||||
|
* completa, limpa quaisquer duplicações de barras e executa o
|
||||||
|
* redirecionamento HTTP.
|
||||||
|
*
|
||||||
|
* @param string|null $path O caminho para o qual redirecionar. Se nulo ou vazio,
|
||||||
|
* redireciona para o `basePath`.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public static function redirect(?string $path): void {
|
||||||
|
// Garante que o basePath começa com "/"
|
||||||
|
$basePath = self::$basePath ? '/' . trim(string: self::$basePath, characters: '/') : '/';
|
||||||
|
|
||||||
|
// Se não tiver caminho, redireciona pro basePath direto
|
||||||
|
if (empty($path)) {
|
||||||
|
header(header: "Location: {$basePath}/");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Garante que o path começa com "/"
|
||||||
|
if (!str_starts_with(haystack: $path, needle: '/')) {
|
||||||
|
$path = "/{$path}";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Monta o destino completo
|
||||||
|
$redirectPath = "{$basePath}{$path}";
|
||||||
|
|
||||||
|
// Limpa duplicações tipo "//"
|
||||||
|
$redirectPath = preg_replace(pattern: '#/+#', replacement: '/', subject: $redirectPath);
|
||||||
|
|
||||||
|
// Executa o redirecionamento
|
||||||
|
header(header: "Location: {$redirectPath}");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Verifica se um caminho de rota corresponde a um caminho de requisição.
|
* Verifica se um caminho de rota corresponde a um caminho de requisição.
|
||||||
*
|
*
|
||||||
@@ -497,6 +461,50 @@
|
|||||||
return $preparedParams;
|
return $preparedParams;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Exibe a página de erro 404 (Página não encontrada).
|
||||||
|
*
|
||||||
|
* Este método estático define o código de resposta HTTP como 404 e renderiza
|
||||||
|
* a view "/Errors/404" para exibir a página de erro. Após a renderização,
|
||||||
|
* o script é encerrado.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
private static function pageNotFound(): void {
|
||||||
|
switch (self::$ROUTER_MODE) {
|
||||||
|
case 'VIEW':
|
||||||
|
// Notifica erro em caso constante não definida
|
||||||
|
if(!defined(constant_name: 'ERROR_404_VIEW_PATH')) {
|
||||||
|
RequestHelper::sendJsonResponse(
|
||||||
|
response_code: 500,
|
||||||
|
status: 'error',
|
||||||
|
message: "Constante 'ERROR_404_VIEW_PATH' não foi definida."
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Caso o arquivo da constante não exista, notifica erro
|
||||||
|
if(!file_exists(filename: ERROR_404_VIEW_PATH)) {
|
||||||
|
RequestHelper::sendJsonResponse(
|
||||||
|
response_code: 500,
|
||||||
|
status: 'error',
|
||||||
|
message: "Arquivo da constante 'ERROR_404_VIEW_PATH' não foi encontrado."
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
http_response_code(response_code: 404);
|
||||||
|
require_once ERROR_404_VIEW_PATH;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'JSON':
|
||||||
|
RequestHelper::sendJsonResponse(
|
||||||
|
response_code: 404,
|
||||||
|
status: 'error',
|
||||||
|
message: "Página não encontrada."
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Despacha a requisição para o controlador e ação correspondentes.
|
* Despacha a requisição para o controlador e ação correspondentes.
|
||||||
*
|
*
|
||||||
@@ -513,10 +521,21 @@
|
|||||||
// Verificar as constantes necessárias antes de processar a requisição
|
// Verificar as constantes necessárias antes de processar a requisição
|
||||||
self::checkRequiredConstant();
|
self::checkRequiredConstant();
|
||||||
|
|
||||||
|
// Inicializa dados da requisição
|
||||||
|
$requestData = null;
|
||||||
$method = $_SERVER['REQUEST_METHOD'];
|
$method = $_SERVER['REQUEST_METHOD'];
|
||||||
$uri = parse_url(url: $_SERVER['REQUEST_URI'], component: PHP_URL_PATH);
|
$uri = parse_url(url: $_SERVER['REQUEST_URI'], component: PHP_URL_PATH);
|
||||||
$uri = trim(string: rtrim(string: $uri, characters: '/'), characters: '/');
|
$uri = trim(string: rtrim(string: $uri, characters: '/'), characters: '/');
|
||||||
|
|
||||||
|
// Remove o basePath do início da URI (se tiver)
|
||||||
|
$basePath = rtrim(string: self::$basePath ?? '', characters: '/');
|
||||||
|
if (!empty($basePath) && str_starts_with(haystack: $uri, needle: $basePath)) {
|
||||||
|
$uri = substr(string: $uri, offset: strlen(string: $basePath));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Limpa possíveis barras extras
|
||||||
|
$uri = trim(string: $uri, characters: '/');
|
||||||
|
|
||||||
// Suporte ao _method em POST para PUT/DELETE/PATCH
|
// Suporte ao _method em POST para PUT/DELETE/PATCH
|
||||||
if ($method === 'POST' && isset($_POST['_method'])) {
|
if ($method === 'POST' && isset($_POST['_method'])) {
|
||||||
$method = strtoupper(string: $_POST['_method']);
|
$method = strtoupper(string: $_POST['_method']);
|
||||||
@@ -524,13 +543,11 @@
|
|||||||
|
|
||||||
// Verifica se o método HTTP é permitido
|
// Verifica se o método HTTP é permitido
|
||||||
if(!in_array(needle: $method, haystack: self::$allowedHttpRequests)) {
|
if(!in_array(needle: $method, haystack: self::$allowedHttpRequests)) {
|
||||||
http_response_code(response_code: 405);
|
RequestHelper::sendJsonResponse(
|
||||||
header(header: 'Content-Type: application/json; charset=utf-8');
|
response_code: 405,
|
||||||
echo json_encode(value: [
|
status: 'error',
|
||||||
"status" => 'error',
|
message: "Método HTTP '{$method}' não permitido."
|
||||||
"message" => "Método HTTP '{$method}' não permitido."
|
);
|
||||||
]);
|
|
||||||
exit;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// =============================
|
// =============================
|
||||||
@@ -572,43 +589,54 @@
|
|||||||
// =============================
|
// =============================
|
||||||
// EXTRAI DADOS DE PUT, DELETE, PATCH
|
// EXTRAI DADOS DE PUT, DELETE, PATCH
|
||||||
// =============================
|
// =============================
|
||||||
$requestData = match($method) {
|
if(in_array(needle: $method, haystack: ['PUT', 'DELETE', 'PATCH'])) {
|
||||||
'GET' => null,
|
$requestData = self::extractRequestData(method: $method);
|
||||||
'POST' => null,
|
}
|
||||||
default => self::extractRequestData(method: $method)
|
|
||||||
};
|
// Seleciona apenas as rotas do método atual
|
||||||
|
$routes = self::$routes[$method] ?? [];
|
||||||
|
|
||||||
// =============================
|
// =============================
|
||||||
// LOOP PARA PROCESSAR ROTAS
|
// LOOP PARA PROCESSAR ROTAS
|
||||||
// =============================
|
// =============================
|
||||||
foreach (self::$routes as $route) {
|
if(!empty($routes)) {
|
||||||
if (self::matchRoute(method: $method, uri: $uri, route: $route)) {
|
foreach ($routes as $route) {
|
||||||
// Executa middlewares
|
if (self::matchRoute(method: $method, uri: $uri, route: $route)) {
|
||||||
if (!empty($route['middlewares']) && !self::runMiddlewares(middlewares: $route['middlewares'])) {
|
// Executa middlewares
|
||||||
return; // Middleware bloqueou
|
if (!empty($route['middlewares']) && !self::runMiddlewares(middlewares: $route['middlewares'])) {
|
||||||
}
|
return; // Middleware bloqueou
|
||||||
|
}
|
||||||
|
|
||||||
$controller = new $route['controller']();
|
$controller = new $route['controller']();
|
||||||
$action = $route['action'];
|
$action = $route['action'];
|
||||||
$params = self::prepareMethodParameters(method: $method, params: [$requestData]);
|
$params = self::prepareMethodParameters(method: $method, params: [$requestData]);
|
||||||
|
|
||||||
switch (self::$ROUTER_MODE) {
|
switch (self::$ROUTER_MODE) {
|
||||||
case 'VIEW':
|
case 'VIEW':
|
||||||
if (method_exists(object_or_class: $controller, method: $action)) {
|
if (method_exists(object_or_class: $controller, method: $action)) {
|
||||||
http_response_code(response_code: 200);
|
http_response_code(response_code: 200);
|
||||||
call_user_func_array(callback: [$controller, $action], args: $params);
|
call_user_func_array(callback: [$controller, $action], args: $params);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'JSON':
|
case 'JSON':
|
||||||
if (method_exists(object_or_class: $controller, method: $action)) {
|
if (method_exists(object_or_class: $controller, method: $action)) {
|
||||||
http_response_code(response_code: 200);
|
http_response_code(response_code: 200);
|
||||||
header(header: 'Content-Type: application/json; charset=utf-8');
|
header(header: 'Content-Type: application/json; charset=utf-8');
|
||||||
call_user_func_array(callback: [$controller, $action], args: $params);
|
call_user_func_array(callback: [$controller, $action], args: $params);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
RequestHelper::sendJsonResponse(
|
||||||
|
response_code: 500,
|
||||||
|
status: 'error',
|
||||||
|
message: "Modo de roteamento inválido."
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -619,54 +647,4 @@
|
|||||||
self::pageNotFound();
|
self::pageNotFound();
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Exibe a página de erro 404 (Página não encontrada).
|
|
||||||
*
|
|
||||||
* Este método estático define o código de resposta HTTP como 404 e renderiza
|
|
||||||
* a view "/Errors/404" para exibir a página de erro. Após a renderização,
|
|
||||||
* o script é encerrado.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
private static function pageNotFound(): void {
|
|
||||||
switch (self::$ROUTER_MODE) {
|
|
||||||
case 'VIEW':
|
|
||||||
// Notifica erro em caso constante não definida
|
|
||||||
if(!defined(constant_name: 'ERROR_404_VIEW_PATH')) {
|
|
||||||
http_response_code(response_code: 500);
|
|
||||||
header(header: 'Content-Type: application/json; charset=utf-8');
|
|
||||||
echo json_encode( value: [
|
|
||||||
"status" => 'error',
|
|
||||||
"message" => "Constante 'ERROR_404_VIEW_PATH' não foi definida.",
|
|
||||||
]);
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Caso o arquivo da constante não exista, notifica erro
|
|
||||||
if(!file_exists(filename: ERROR_404_VIEW_PATH)) {
|
|
||||||
http_response_code(response_code: 500);
|
|
||||||
header(header: 'Content-Type: application/json; charset=utf-8');
|
|
||||||
echo json_encode( value: [
|
|
||||||
"status" => 'error',
|
|
||||||
"message" => "Arquivo da constante 'ERROR_404_VIEW_PATH' não foi encontrado.",
|
|
||||||
]);
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
http_response_code(response_code: 404);
|
|
||||||
require_once ERROR_404_VIEW_PATH;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'JSON':
|
|
||||||
http_response_code(response_code: 404);
|
|
||||||
header(header: 'Content-Type: application/json; charset=utf-8');
|
|
||||||
echo json_encode( value: [
|
|
||||||
"status" => 'error',
|
|
||||||
"message" => "Página não encontrada.",
|
|
||||||
]);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
14
vendor/composer/installed.json
vendored
14
vendor/composer/installed.json
vendored
@@ -2,24 +2,24 @@
|
|||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "claudecio/axiumphp",
|
"name": "claudecio/axiumphp",
|
||||||
"version": "dev-dev-update-initializing",
|
"version": "dev-feature-updated-router",
|
||||||
"version_normalized": "dev-dev-update-initializing",
|
"version_normalized": "dev-feature-updated-router",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/claudecio/AxiumPHP.git",
|
"url": "https://github.com/claudecio/AxiumPHP.git",
|
||||||
"reference": "ccc3c7de5462371150ea8d82549701519503f9f7"
|
"reference": "c7353947a667ea857b461f2b6251441784a4b8ef"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/claudecio/AxiumPHP/zipball/ccc3c7de5462371150ea8d82549701519503f9f7",
|
"url": "https://api.github.com/repos/claudecio/AxiumPHP/zipball/c7353947a667ea857b461f2b6251441784a4b8ef",
|
||||||
"reference": "ccc3c7de5462371150ea8d82549701519503f9f7",
|
"reference": "c7353947a667ea857b461f2b6251441784a4b8ef",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=8.1",
|
"php": ">=8.1",
|
||||||
"vlucas/phpdotenv": "v5.6.2"
|
"vlucas/phpdotenv": "v5.6.2"
|
||||||
},
|
},
|
||||||
"time": "2025-10-18T18:31:17+00:00",
|
"time": "2025-10-26T20:05:19+00:00",
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"installation-source": "dist",
|
"installation-source": "dist",
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
],
|
],
|
||||||
"description": "Meu framework PHP para sistemas MVC modulares.",
|
"description": "Meu framework PHP para sistemas MVC modulares.",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/claudecio/AxiumPHP/tree/dev-update-initializing",
|
"source": "https://github.com/claudecio/AxiumPHP/tree/feature-updated-router",
|
||||||
"issues": "https://github.com/claudecio/AxiumPHP/issues"
|
"issues": "https://github.com/claudecio/AxiumPHP/issues"
|
||||||
},
|
},
|
||||||
"install-path": "../claudecio/axiumphp"
|
"install-path": "../claudecio/axiumphp"
|
||||||
|
|||||||
10
vendor/composer/installed.php
vendored
10
vendor/composer/installed.php
vendored
@@ -3,7 +3,7 @@
|
|||||||
'name' => 'cybercore/workbloom',
|
'name' => 'cybercore/workbloom',
|
||||||
'pretty_version' => 'dev-main',
|
'pretty_version' => 'dev-main',
|
||||||
'version' => 'dev-main',
|
'version' => 'dev-main',
|
||||||
'reference' => '311cadc1d12a6f269a473c6861dfc268a201ef6f',
|
'reference' => '9cfa79db4b2f3aca5feab04bb1212cf87d9a8565',
|
||||||
'type' => 'project',
|
'type' => 'project',
|
||||||
'install_path' => __DIR__ . '/../../',
|
'install_path' => __DIR__ . '/../../',
|
||||||
'aliases' => array(),
|
'aliases' => array(),
|
||||||
@@ -11,9 +11,9 @@
|
|||||||
),
|
),
|
||||||
'versions' => array(
|
'versions' => array(
|
||||||
'claudecio/axiumphp' => array(
|
'claudecio/axiumphp' => array(
|
||||||
'pretty_version' => 'dev-dev-update-initializing',
|
'pretty_version' => 'dev-feature-updated-router',
|
||||||
'version' => 'dev-dev-update-initializing',
|
'version' => 'dev-feature-updated-router',
|
||||||
'reference' => 'ccc3c7de5462371150ea8d82549701519503f9f7',
|
'reference' => 'c7353947a667ea857b461f2b6251441784a4b8ef',
|
||||||
'type' => 'library',
|
'type' => 'library',
|
||||||
'install_path' => __DIR__ . '/../claudecio/axiumphp',
|
'install_path' => __DIR__ . '/../claudecio/axiumphp',
|
||||||
'aliases' => array(),
|
'aliases' => array(),
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
'cybercore/workbloom' => array(
|
'cybercore/workbloom' => array(
|
||||||
'pretty_version' => 'dev-main',
|
'pretty_version' => 'dev-main',
|
||||||
'version' => 'dev-main',
|
'version' => 'dev-main',
|
||||||
'reference' => '311cadc1d12a6f269a473c6861dfc268a201ef6f',
|
'reference' => '9cfa79db4b2f3aca5feab04bb1212cf87d9a8565',
|
||||||
'type' => 'project',
|
'type' => 'project',
|
||||||
'install_path' => __DIR__ . '/../../',
|
'install_path' => __DIR__ . '/../../',
|
||||||
'aliases' => array(),
|
'aliases' => array(),
|
||||||
|
|||||||
Reference in New Issue
Block a user