Caminho no Gestor bibliotecas/gestor.php
bibliotecas/gestor.php é a biblioteca de apoio usada por todo o Gestor e sempre carregada. Não confunda com gestor/gestor.php, o roteador, que monta a página a cada requisição e chama estas funções. Ao carregar, ela inclui também recursos.php, se ainda não estiver presente, porque todas as tags <script>/<link> resolvem a URL por recursos_url().
Muitas funções são puras, sem estado global: foram extraídas do roteador (que termina em exit e não pode ser incluído num teste) justamente para serem testáveis.
Utilitários básicos
-
existe($dado)é o "tem conteúdo?" usado em todo o core: array com elementos, string com pelo menos um caractere, ou qualquer valor verdadeiro. Atenção:existe('0')étrue, masexiste(0)éfalse. -
gestor_asset_version($owner = null, $fallback = null)devolve o token de cache de um diretório de assets. Procura em$_GESTOR['asset-versions']['owners'][$owner]; depois em$_GESTOR['asset-version'], no$fallbacke na versão do sistema. -
gestor_modulo_asset_version($modulo)devolve o token de cache do JS/CSS de um módulo:asset_versiondo JSON do módulo, senãoversao, senão o token global. -
gestor_modulos_dados($modulo_id)lê e decodificagestor/modulos/<id>/<id>.json. Devolvenullquando o arquivo não existe, sem emitir warning. -
gestor_js_variavel_incluir($variavel, $valor)publica um valor para o JavaScript da página em$_GESTOR['javascript-vars'], que o roteador serializa como objeto global. Se a variável já existe e os dois valores são arrays, fazarray_merge_recursive; senão, sobrescreve.
Estado do Sistema e Variáveis Globais (GestorState)
A camada de controle de estado (GestorState) oferece acesso padronizado e seguro ao estado global do sistema ($_GESTOR), com suporte a fallback, notação pontuada e proteção de chaves críticas:
-
gestor_get(string $chave, mixed $padrao = null): mixed— Recupera valor do estado global. Suporta notação pontuada (ex:gestor_get('banco.conexao.host', 'localhost')). -
gestor_set(string $chave, mixed $valor): bool— Define ou atualiza valor de forma segura. Bloqueia tentativas de mutação acidental em chaves críticas do sistema. -
gestor_has(string $chave): bool— Verifica existência da chave no estado global (suporta notação pontuada). -
gestor_contexto(string $escopo): array— Extrai fatia delimitada de contexto (modulo,usuario,sistema, etc.).
Chaves protegidas do Core
-
raiz-absoluta,url-raiz,linguagem-codigo,versao-num. -
Tentativas de alteração via
gestor_set()são barradas com log de auditoria.
API OOP da Classe GestorState
-
GestorState::get($chave, $padrao) -
GestorState::set($chave, $valor) -
GestorState::has($chave) -
GestorState::contexto($escopo) -
GestorState::proteger(...$chaves)/GestorState::desproteger(...$chaves) -
GestorState::isProtegida($chave)/GestorState::getChavesProtegidas() -
GestorState::getAuditoria()/GestorState::reset()
Bibliotecas
gestor_incluir_bibliotecas() e gestor_incluir_biblioteca($nome) carregam bibliotecas pelo nome lógico. Veja Bibliotecas do Gestor.
Framework CSS de uma página
Uma página final é layout + página, e os dois têm framework_css.
-
gestor_framework_css_resolver($layout, $pagina)decide o que carregar:-
Fomantic entra se um dos dois o declarar, ou se nenhum declarar nada (legado);
-
Tailwind entra se um dos dois o declarar.
-
Devolve
['fomantic' => bool, 'tailwind' => bool, 'modo' => 'fomantic-ui'|'tailwindcss'|'hibrido'].
-
-
gestor_framework_css_atual()aplica a regra a$_GESTOR['layout#framework_css']e$_GESTOR['pagina#framework_css'].
Esquema do banco sem erro 500
Código novo pode chegar a um banco antigo (migração que falhou, atualização só de arquivos, --skip-migrate, a janela do deploy). Para a funcionalidade nova sumir em vez de derrubar a tela:
-
gestor_schema_tabela_existe($tabela)faz umSHOW TABLESpor requisição (memorizado) e respondefalsetambém quando o banco não pôde ser consultado; -
gestor_schema_campo_existe($campo, $tabela)verifica a tabela primeiro e memoriza portabela.campo, sem lançar exceção.
Componentes e layouts
gestor_componente($params)
Busca componentes na tabela componentes, no idioma atual (ou em linguagem).
| Parâmetro | Efeito |
|---|---|
id |
Id textual, ou array de ids (devolve [id => ['html' => …]]) |
id_componentes |
Id numérico (alternativa) |
modulo |
Restringe ao módulo |
return_css |
Devolve também css, css_precompiled, css_compiled e html_extra_head, sem incluí-los na página |
modulosExtra |
Módulos cujas variáveis também serão resolvidas na página |
-
Sem
return_css, o CSS e ohtml_extra_headdo componente entram no<head>viagestor_pagina_recursos_incluir(), sem duplicar, e só o HTML volta. -
Com
$_GESTOR['development-env']ligado, o HTML e o CSS vêm dos arquivos emresources/(do core ou do módulo), e não do banco. -
Não encontrado:
''(ou[]com array de ids). A consulta não filtrastatus. -
gestor_componente_ids_condicao($ids)monta o(id='a' OR id='b')escapado usado na busca múltipla.
Para anexar componentes ao fim da página: marque com gestor_componentes_incluir(['id' => …]) ou (['componentes' => [...]]); o roteador chama gestor_componentes_incluir_pagina(), que renderiza cada marcado e concatena em $_GESTOR['pagina'].
gestor_layout($params)
Mesmo modelo, na tabela layouts (id, id_layouts, return_css, modulosExtra). Diferenças:
-
grava o
framework_cssdo layout em$_GESTOR['layout#framework_css']; -
inclui o CSS pré-compilado com o papel
layout-precompiled, para o layout vir primeiro na cascata; -
em desenvolvimento, lê também layouts de plugins (
plugins/<plugin>/modules/<modulo>/resources/…); -
se o layout não existe, devolve um HTML mínimo (
<!-- pagina#titulo -->,<!-- pagina#css -->,<!-- pagina#js -->e@[[pagina#corpo]]@).
Recursos de página (CSS e <head>)
gestor_pagina_recursos_incluir(['css' => …, 'css_precompiled' => …, 'css_precompiled_role' => …, 'css_compiled' => …, 'html_extra_head' => …]) é o único caminho certo para widgets e componentes levarem CSS ao <head>. Cada trecho entra uma vez só, com deduplicação por MD5 em $_GESTOR['recursos-incluidos-hashes'], e é marcado no DOM:
-
cssvira<style data-c2f-css-role="authored">; -
css_compiledviradata-c2f-css-role="compiled"; -
css_precompiledvira<style data-tailwind-role="…">, com papellayout-precompiled,dependency-precompiled,page-precompiledouresource-precompiled(o padrão).
gestor_css_precompiled_ordenar($styles) ordena os <style> pré-compilados por papel: layout, dependências, página, recursos e o resto. As cascade layers do Tailwind v4 são definidas na primeira aparição, e o layout precisa declarar theme, base, components, utilities antes de tudo. Com $_GESTOR['tailwind-page-bundle'] (bundle canônico por página), só entram o da página e os sem papel. Os resource-precompiled descartados geram um único log_disco na categoria tailwind.
Auditoria e procedência do CSS
Usadas pelos comandos css:audit e css:rebuild e pelos CRUDs que gravam recursos:
-
gestor_css_classes_usadas($html)lista as classes do markup, ignorando marcadores de template ([,{,@). Isso inclui variantes arbitrárias do Tailwind comobg-[rgb(…)]. -
gestor_css_classes_definidas($css)lista as classes definidas numa folha, desescapandomd\:flex. -
gestor_css_classes_descobertas($html, $css)lista as usadas e não definidas, exceto os marcadoresgroupepeer. -
gestor_css_classes_em_codigo($codigo)acha classes montadas em PHP/JS (class="…",classList.add/remove/toggle,className =): é a dívida que obriga a declarartailwind_sources. -
gestor_css_procedencia_assinatura(['html','css','baseline','compilador'])gerav2:<sha1>: o carimbo de com que entrada o CSS derivado foi gerado. Obaselineé o CSS do layout, e ocompiladoré a versão do Tailwind. -
gestor_css_compilador_versao()lê essa versão do registro deassets-externos.php(tailwindcss-browser). -
gestor_css_procedencia_para_recurso($html, $css, $layout_id, $tabela)devolve a assinatura pronta para gravar emcss_source_hash, ou''se a coluna ainda não existe. -
gestor_css_procedencia_valida($gravada, $params)compara. Assinatura ausente conta como inválida, de propósito.
Variáveis de texto (i18n)
Os textos de interface ficam na tabela variaveis, por language e modulo.
-
gestor_variaveis(['modulo' => …, 'id' => …])devolve o texto no idioma atual. Semmodulo, usa_global_(modulo IS NULL). Carrega o módulo inteiro na primeira chamada e guarda em$_GESTOR['variaveis'][$modulo]. Ausente:''. Comconjunto => true, devolve todas as variáveis do módulo;padraofiltra os ids por uma substring, sem diferenciar maiúsculas de minúsculas, eresetrelê do banco. -
gestor_variaveis_globais(['id' => …])faz a busca pontual por id e devolvenullse não achar. -
gestor_variaveis_alterar(['modulo', 'id', 'tipo', 'valor', 'linguagem'])atualiza o valor. Comtipo = 'bool', grava1/NULL.
gestor_pagina_variaveis_globais(['html' => …]) resolve os marcadores @[[…]]@ de um HTML, nesta ordem:
-
variáveis do módulo atual (
$_GESTOR['modulo-id']); -
variáveis dos módulos extras (
$_GESTOR['paginas-variaveis']); -
os marcadores de sistema
pagina#url-raiz,pagina#url-full-http,pagina#titulo,pagina#contato-urlepagina#url-caminho.
O que não for resolvido permanece no HTML.
Rotas, redirecionamento e query string
-
gestor_redirecionar($local = false, $queryString = '', $externo = false)enviaLocatione encerra comexit.-
Um
$localinterno recebe$_GESTOR['url-raiz']na frente. -
Sem
$local, usa a variável de sessãoredirecionar-local(e a apaga) ou a raiz. -
O alerta em
$_GESTOR['pagina-alerta']é guardado na sessão para a próxima página.
-
-
gestor_redirecionar_montar_url($local, $queryString)junta destino e query com?ou&conforme o destino (req-173). -
gestor_redirecionar_raiz()vai para a página marcada comoraizdo módulo atual (ou para/). -
gestor_reload_url()recarrega o caminho atual. -
gestor_querystring($remover = '')devolve a query atual sem o parâmetro interno_gestor-caminho(e sem$remover). -
gestor_querystring_variavel($qs, $nome)lê um parâmetro. -
gestor_querystring_remover_variavel($qs, $nome)tira um parâmetro. Os valores voltam decodificados, semurlencode. -
gestor_querystring_before_submit($campo, $padrao)lê a query que o formulário guardou num campo oculto (_c2f_query_string_before_submit), já escapada para SQL. -
gestor_roteador_erro_terminal($codigo, $caminho)diz se o 404 já está na rota404/, para não entrar em laço 404 → 404. -
gestor_roteador_pagina_status_http($caminho)devolve 404 para essa página. -
gestor_pagina_301_registrar($id_paginas, $caminho)grava empaginas_301que o caminho antigo pertence à página, deduplicando pelo par (caminho, página). -
gestor_pagina_rota_sistema($caminho)reconhece as rotas que não são conteúdo:cookies-is-mandatory,_gestor-cookie-verify,404,403,500e503. Nelas não entram scripts de rastreamento.
Robôs, OpenGraph e SEO
-
gestor_crawler_detectar($userAgent, $tokensExtra = null)compara o User-Agent, em minúsculas e por substring, com:-
gestor_crawler_tokens_padrao(): WhatsApp, Meta, Googlebot, Bing, Lighthouse, Ahrefs, monitores de uptime…; -
gestor_crawler_tokens_extra(): a lista de Ambiente → Configurações do Site, que só vale comcrawler-tokens-extra-ativo.
-
-
gestor_crawler_tokens_normalizar($bruto)transforma texto separado por vírgula, ponto e vírgula ou quebra de linha numa lista sem repetição. -
gestor_cookie_verificacao_desfecho(['crawler','tem_cookie','exigir_sessao','caminho'])decide entreignorar,emitireredirecionarna verificação de cookie. Numa rota de sistema nunca redireciona, o que evita o laço da página "cookies obrigatórios". -
gestor_open_graph_tags([...])montaog:title,og:description,og:image,og:url,og:site_nameeog:type, maistwitter:card. Nunca emite tag vazia. -
gestor_open_graph_existe($html)detecta se o HTML já traz as suas; nesse caso o core não injeta as dele. -
gestor_pagina_og_do_registro($pagina)extraiog_titulo,og_descricao,imagem_destaque,meta_descricaoemeta_keywordspreenchidos do registro da página. -
gestor_meta_seo_tags(['description','keywords'])gera as metatags clássicas;gestor_meta_seo_existe($html)evita duplicá-las;gestor_meta_keywords_normalizar($bruto)limpa as palavras-chave (sem repetição, mantendo a caixa). -
gestor_pdf_viewer_detectar($html)vê se a página tem o leitor PDF.js (classeconn2flow-pdfjs), egestor_pdf_viewer_assets($urlRaiz, $versao)devolve os<script>(PDF.js 3.11.174 do cdnjs einterface/pdf-viewer.js).
Acesso restrito ao site (req-163)
Com SITE_RESTRICTED_ACCESS=true no .env, só usuários logados veem o site:
-
gestor_site_acesso_restrito_ativo()lê a chave de$_CONFIGe cai para$_ENV/getenv(); -
gestor_site_acesso_restrito_perfis()devolve osid_usuarios_perfispermitidos emSITE_RESTRICTED_PROFILES(só inteiros positivos); -
gestor_site_acesso_restrito_perfil_autorizado($perfil, $lista)libera qualquer logado se a lista estiver vazia; anônimo nunca; -
gestor_site_acesso_restrito_rota_isenta($caminho)libera as rotas de identidade (login, cadastro, recuperação de senha, OAuth),_api,api,_gatewayse as rotas de sistema.
CSRF e ícones do menu
-
gestor_csrf_rotas_identidade()lista as telas com token de uso único (signin,signin-2fa,signup,forgot-password,reset-password,validate-user). -
gestor_csrf_destino_recarregamento($caminho, $referer, $urlRaiz)escolhe para qual dessas telas a página de erro de CSRF deve recarregar, pelo caminho atual e depois pelo referer. -
gestor_pagina_menu_icone_lucide_valido($nome)aceita só nomes kebab-case, os únicos que o Lucide resolve. -
gestor_pagina_menu_icone_lucide_atributo($nome)devolvedata-lucide="…", ou nada para nome inválido, o que evita o avisoicon name was not found.
Sessão
A sessão do Gestor fica no banco: tabelas sessoes e sessoes_variaveis. Não usa $_SESSION.
-
gestor_sessao_iniciar()cria o cookie$_CONFIG['session-authname']com 32 bytes aleatórios (seguranca_token_aleatorio()),HttpOnly,SameSite=Lax, domínioSERVER_NAMEe validadesession-lifetime(10800 s por padrão). -
gestor_cookie_is_secure()decide oSecure: sempre em HTTPS (inclusive atrás de proxy, porX-Forwarded-Proto) e sempre em produção; só fica semSecurecom HTTP edevelopment-env. -
gestor_sessao_id()devolve o id numérico da sessão, criando a linha se preciso, e atualizaacessouma vez por requisição. Em 1 de cada 51 requisições apaga as sessões (e variáveis) sem acesso há mais desession-lifetime. -
gestor_sessao_variavel($nome, $valor = null)guarda (JSON) ou lê um valor. Ausente:''. Não há como gravarnull: ele significa leitura. -
gestor_sessao_variavel_del($nome)apaga uma variável;gestor_sessao_del()apaga a sessão atual e expira o cookie. -
gestor_sessao_del_all()apaga todas as sessões de todos os usuários.
Higienização do HTML servido (req-132)
Em produção, o HTML entregue sai sem comentários e sem indentação.
-
gestor_pagina_higienizar_ativo()lêHTML_SANITIZE:-
auto(o padrão) liga em produção e desliga em desenvolvimento; -
onliga sempre; -
offdesliga sempre; -
valor desconhecido vira
auto. -
Com a barra de edição ao vivo (
gestor_dashboard_toolbar_ativo()), nunca higieniza.
-
-
gestor_html_higienizar($html)preserva<pre>,<textarea>,<script>e comentários condicionais; remove comentários HTML e comentários/indentação de CSS dentro de<style>; troca a indentação por uma quebra de linha, porque espaço entre elementos em linha é renderizado. -
gestor_js_higienizar($js)é um scanner (não uma regex) que respeita strings, template literals e regex literais, e mantém as quebras de linha por causa da ASI.gestor_js_barra_inicia_regex($anterior)decide se uma/abre regex ou é divisão. -
gestor_pagina_higienizar_js_ativo()é a chave própriaHTML_SANITIZE_JSpara desligar só a parte de JavaScript. -
gestor_html_script_e_javascript($tag)só aceita<script>inline de JavaScript. Ignorasrc,application/json,text/templatee outros tipos usados como depósito de dados.
Veja também
Funções (referência gerada)
Gerado a partir de gestor/bibliotecas/gestor.php · 84 funções
existe
ver no código · linha 45 ↗existe(mixed $dado = false): boolVerifica se um dado existe e não está vazio.
Parâmetros
$dadomixed- Dado a ser verificado.
Retorno
gestor_asset_version
ver no código · linha 71 ↗gestor_asset_version($owner = null, $fallback = null)Resolve token de cache de um diretório de assets, com fallback semântico.
Parâmetros
$owner$fallback
gestor_modulo_asset_version
ver no código · linha 82 ↗gestor_modulo_asset_version($modulo)Resolve token de cache do módulo sem alterar sua versão semântica.
Parâmetros
$modulo
gestor_get
ver no código · linha 452 ↗gestor_get(string $chave, mixed $padrao = null): mixedRecupera um valor de configuração/estado do sistema com suporte a fallback e notação pontuada. Exemplo: gestor_get('usuario-id') ou gestor_get('banco.conexao.host', 'localhost')
Parâmetros
$chavestring- Chave simples ou caminho delimitado por pontos.
$padraomixed- Valor padrão retornado se a chave não existir.
Retorno
gestor_set
ver no código · linha 464 ↗gestor_set(string $chave, mixed $valor): boolDefine ou atualiza um valor no estado global de forma segura e controlada. Se a chave for protegida/read-only, emite alerta no log e bloqueia mutação acidental.
Parâmetros
$chavestring- Chave simples ou caminho delimitado por pontos.
$valormixed- Valor a ser definido.
Retorno
gestor_has
ver no código · linha 474 ↗gestor_has(string $chave): boolVerifica a existência de uma chave no estado global.
Parâmetros
$chavestring- Chave simples ou caminho delimitado por pontos.
Retorno
gestor_contexto
ver no código · linha 484 ↗gestor_contexto(string $escopo): arrayRetorna uma fatia de contexto delimitada (ex.: dados do módulo ativo ou usuário ativo).
Parâmetros
$escopostring- Identificador do escopo ('modulo', 'usuario', 'sistema', etc.).
Retorno
gestor_framework_css_resolver
ver no código · linha 510 ↗gestor_framework_css_resolver(string|null $layoutFramework = null, string|null $paginaFramework = null): array{fomantic:bool,tailwind:bool,modo:string}Resolve o framework CSS efetivo de uma requisição a partir do layout E da página (req-118).
Parâmetros
$layoutFrameworkstring|null- Valor de
layouts.framework_css. $paginaFrameworkstring|null- Valor de
paginas.framework_css.
Retorno
modo é fomantic-ui, tailwindcss ougestor_framework_css_atual
ver no código · linha 537 ↗gestor_framework_css_atual(): array{fomantic:bool,tailwind:bool,modo:string}Atalho para a resolução de framework da requisição corrente.
Retorno
gestor_schema_tabela_existe
ver no código · linha 573 ↗gestor_schema_tabela_existe(string $tabela): boolDiz se uma tabela existe no banco corrente.
Parâmetros
$tabelastring- Nome da tabela.
Retorno
gestor_schema_campo_existe
ver no código · linha 609 ↗gestor_schema_campo_existe(string $campo, string $tabela): boolDiz se um campo existe em uma tabela do banco corrente.
Parâmetros
$campostring- Nome da coluna.
$tabelastring- Nome da tabela.
Retorno
gestor_css_precompiled_ordenar
ver no código · linha 645 ↗gestor_css_precompiled_ordenar($styles)Ordena sidecars Tailwind pela responsabilidade na cascata.
Parâmetros
$styles
gestor_layouts_perfis_mapa
ver no código · linha 711 ↗gestor_layouts_perfis_mapa(mixed $mapeamento): array<string,string>Mapa perfil => layout de uma página (coluna paginas.layouts_users_profiles).
Parâmetros
$mapeamentomixed
Retorno
gestor_css_layouts_marcador
ver no código · linha 738 ↗gestor_css_layouts_marcador(array $layouts): stringMarcador gravado no início do CSS derivado de uma página compilada com mais de um layout.
Parâmetros
$layoutsarray- Ids dos layouts compilados junto.
Retorno
gestor_css_layouts_cobertos
ver no código · linha 757 ↗gestor_css_layouts_cobertos(string $css): arrayLayouts cobertos por um CSS derivado, lidos do marcador de gestor_css_layouts_marcador().
Parâmetros
$cssstring
Retorno
gestor_pagina_recursos_incluir
ver no código · linha 775 ↗gestor_pagina_recursos_incluir(array $params = false)Inclui recursos de página (CSS, CSS compilado e HTML extra head) no pipeline global. Controla duplicidades via hash MD5 para evitar inclusão redundante quando múltiplos blocos do mesmo widget/componente são inseridos na mesma página (req-028 / DEC-041).
Parâmetros
$paramsarray
gestor_crawler_detectar
ver no código · linha 859 ↗gestor_crawler_detectar(string|null $userAgent = null, $tokensExtra = null): boolDetecta crawlers/scrapers sociais e de busca pelo User-Agent (req-109 / BATCH-109).
Parâmetros
$userAgentstring|null- User-Agent da requisição ($_SERVER['HTTP_USER_AGENT']).
$tokensExtra
Retorno
gestor_crawler_tokens_padrao
ver no código · linha 890 ↗gestor_crawler_tokens_padrao(): arrayLista embutida de tokens de robô (req-109, ampliada no req-111 / CR-001).
Retorno
gestor_crawler_tokens_extra
ver no código · linha 964 ↗gestor_crawler_tokens_extra(): arrayTokens adicionais definidos pelo operador em Ambiente → Configurações do Site (req-111 / CR-001).
Retorno
gestor_crawler_tokens_normalizar
ver no código · linha 985 ↗gestor_crawler_tokens_normalizar(string $bruto): arrayConverte o texto livre da configuração numa lista de tokens.
Parâmetros
$brutostring
Retorno
gestor_pagina_rota_sistema
ver no código · linha 1015 ↗gestor_pagina_rota_sistema(string $caminho = ''): boolIdentifica páginas de sistema que NÃO devem receber scripts de rastreamento (req-109 / BATCH-109).
Parâmetros
$caminhostring- Caminho da página já normalizado (
$_GESTOR['caminho-total']com barra final).
Retorno
gestor_site_acesso_restrito_ativo
ver no código · linha 1046 ↗gestor_site_acesso_restrito_ativo(): boolAcesso Restrito ao Site está ligado? (req-163 / BATCH-168)
Retorno
gestor_site_acesso_restrito_perfis
ver no código · linha 1067 ↗gestor_site_acesso_restrito_perfis(string|array|null $bruto = null): arrayPerfis (id_usuarios_perfis) autorizados pelo Acesso Restrito ao Site (req-163).
Parâmetros
$brutostring|array|null
Retorno
gestor_site_acesso_restrito_rota_isenta
ver no código · linha 1105 ↗gestor_site_acesso_restrito_rota_isenta(string $caminho = ''): boolRotas que o Acesso Restrito ao Site NUNCA bloqueia (req-163).
Parâmetros
$caminhostring- Caminho da requisição (
$_GESTOR['caminho-total']).
Retorno
gestor_site_acesso_restrito_perfil_autorizado
ver no código · linha 1158 ↗gestor_site_acesso_restrito_perfil_autorizado(string|int $perfilId, array $perfisAutorizados): boolDecide se um perfil entra no site restrito (req-163).
Parâmetros
$perfilIdstring|intid_usuarios_perfisdo usuário autenticado.$perfisAutorizadosarray- Saída de
gestor_site_acesso_restrito_perfis().
Retorno
gestor_roteador_erro_terminal
ver no código · linha 1176 ↗gestor_roteador_erro_terminal(int|string $codigo, mixed $caminho = ''): boolDetecta o fallback terminal da rota de erro para impedir redirecionamento 404 -> 404.
Parâmetros
$codigoint|string- Codigo HTTP em processamento.
$caminhomixed- Caminho atual recebido pelo roteador.
Retorno
gestor_roteador_pagina_status_http
ver no código · linha 1188 ↗gestor_roteador_pagina_status_http(mixed $caminho = ''): int|nullRetorna o status HTTP que deve ser preservado ao renderizar uma pagina de erro existente.
Parâmetros
$caminhomixed- Caminho da pagina encontrada pelo roteador.
Retorno
gestor_pagina_301_registrar
ver no código · linha 1214 ↗gestor_pagina_301_registrar(int|string $id_paginas, string $caminho): boolRegistra um redirecionamento 301 de um caminho liberado por uma página (F10 do review 2026-08-15).
Parâmetros
$id_paginasint|string- Id NUMÉRICO da página que liberou o caminho.
$caminhostring- Caminho antigo.
Retorno
gestor_open_graph_tags
ver no código · linha 1261 ↗gestor_open_graph_tags(array $params = false): arrayMonta as metatags OpenGraph do <head> (req-109 / BATCH-109).
Parâmetros
$paramsarray
Retorno
<meta …>.gestor_cookie_verificacao_desfecho
ver no código · linha 1320 ↗gestor_cookie_verificacao_desfecho(array $params = false): stringDecide o desfecho da verificação de cookie do navegador (req-111 / CR-001).
Parâmetros
$paramsarray
Retorno
gestor_pagina_og_do_registro
ver no código · linha 1345 ↗gestor_pagina_og_do_registro(array $pagina = Array()): arrayExtrai os metadados OpenGraph gravados no registro da página (req-110 / BATCH-110).
Parâmetros
$paginaarray- Linha da tabela
paginas.
Retorno
gestor_meta_seo_tags
ver no código · linha 1387 ↗gestor_meta_seo_tags(array $params = false): arrayMonta as meta tags clássicas de SEO do <head> (req-112 / BATCH-112).
Parâmetros
$paramsarray
Retorno
<meta …>.gestor_meta_keywords_normalizar
ver no código · linha 1415 ↗gestor_meta_keywords_normalizar(string|array $bruto): stringNormaliza a lista de palavras-chave digitada pelo usuário (req-112 / BATCH-112).
Parâmetros
$brutostring|array
Retorno
gestor_meta_seo_existe
ver no código · linha 1448 ↗gestor_meta_seo_existe(string|array $html): boolDetecta se um HTML já traz metatags de descrição/keywords próprias (req-112 / BATCH-112).
Parâmetros
$htmlstring|array
Retorno
gestor_open_graph_existe
ver no código · linha 1466 ↗gestor_open_graph_existe(string|array $html): boolDetecta se um HTML já traz metatags OpenGraph próprias (req-109 / BATCH-109).
Parâmetros
$htmlstring|array- HTML (ou lista de trechos) já enfileirado para o
<head>.
Retorno
gestor_pdf_viewer_detectar
ver no código · linha 1485 ↗gestor_pdf_viewer_detectar(string $html): boolDetecta se um HTML de página usa o motor de exibição PDF.js (req-096 / BATCH-096).
Parâmetros
$htmlstring- HTML da página já montada.
Retorno
gestor_pdf_viewer_assets
ver no código · linha 1514 ↗gestor_pdf_viewer_assets(string $urlRaiz = '', string $versao = ''): arrayTags de inclusão dos assets do motor PDF.js (req-096 / BATCH-096).
Parâmetros
$urlRaizstring- Raiz pública do projeto ($_GESTOR['url-raiz']).
$versaostring- Versão do sistema, usada para cache-bust.
Retorno
gestor_css_classes_usadas
ver no código · linha 1533 ↗gestor_css_classes_usadas(string $html): arrayClasses efetivamente usadas no markup (BATCH-144 / req-141).
Parâmetros
$htmlstring- HTML da página ou do recurso.
Retorno
gestor_css_classes_definidas
ver no código · linha 1563 ↗gestor_css_classes_definidas(string $css): arrayClasses definidas por uma folha de estilo (BATCH-144 / req-141).
Parâmetros
$cssstring- CSS concatenado das folhas entregues.
Retorno
gestor_css_classes_descobertas
ver no código · linha 1590 ↗gestor_css_classes_descobertas(string $html, string $css): arrayClasses que o HTML usa e nenhuma folha define (BATCH-144 / req-141).
Parâmetros
$htmlstring- HTML entregue.
$cssstring- CSS entregue.
Retorno
gestor_css_classes_em_codigo
ver no código · linha 1630 ↗gestor_css_classes_em_codigo(string $codigo): arrayClasses de estilo embutidas em código PHP/JS (BATCH-144 / req-141).
Parâmetros
$codigostring- Conteúdo de um arquivo PHP ou JS.
Retorno
gestor_css_procedencia_assinatura
ver no código · linha 1709 ↗gestor_css_procedencia_assinatura(array $params = false): stringAssinatura de procedência do CSS derivado (BATCH-144 / req-141 / CR-002).
Parâmetros
$paramsarray
Retorno
gestor_css_compilador_versao
ver no código · linha 1748 ↗gestor_css_compilador_versao(): stringVersão do compilador Tailwind vigente, para a assinatura de procedência (req-156).
Retorno
gestor_css_procedencia_para_recurso
ver no código · linha 1783 ↗gestor_css_procedencia_para_recurso(string $html, string $css, string $layout_id = '', string $tabela = 'paginas'): stringPar campo=valor da procedência, pronto para entrar num INSERT/UPDATE de recurso (req-141).
Parâmetros
$htmlstring- HTML autoral que está sendo gravado.
$cssstring- CSS autoral que está sendo gravado.
$layout_idstring- Layout do recurso; vazio para layouts (eles SÃO a base).
$tabelastring- Tabela de destino, para checar a coluna.
Retorno
gestor_css_procedencia_valida
ver no código · linha 1830 ↗gestor_css_procedencia_valida(string $assinaturaGravada, array $params = false): boolO CSS derivado corresponde à autoria vigente? (BATCH-144 / req-141)
Parâmetros
$assinaturaGravadastring- Valor da coluna
css_source_hash. $paramsarray- Mesmas entradas de gestor_css_procedencia_assinatura().
Retorno
gestor_componente_ids_condicao
ver no código · linha 1842 ↗gestor_componente_ids_condicao($ids, $escape = null)Monta a condição agrupada de IDs usada pela inclusão múltipla de componentes.
Parâmetros
$ids$escape
gestor_componente
ver no código · linha 1876 ↗gestor_componente(array|false $params = false): string|array|falseRenderiza um componente HTML/CSS dinâmico.
Parâmetros
$paramsarray|false- Parâmetros da função.
Retorno
gestor_layout
ver no código · linha 2108 ↗gestor_layout(array|false $params = false): string|array|falseRenderiza um layout HTML/CSS completo da página.
Parâmetros
$paramsarray|false- Parâmetros da função.
Retorno
gestor_incluir_bibliotecas
ver no código · linha 2370 ↗gestor_incluir_bibliotecas(): voidInclui todas as bibliotecas do sistema.
Retorno
gestor_incluir_biblioteca
ver no código · linha 2397 ↗gestor_incluir_biblioteca(string $biblioteca): voidInclui uma biblioteca específica do sistema.
Parâmetros
$bibliotecastring- Nome do arquivo da biblioteca (sem .php).
Retorno
gestor_variaveis
ver no código · linha 2454 ↗gestor_variaveis(array|false $params = false): string|arrayObtém variáveis do sistema por módulo e idioma.
Parâmetros
$paramsarray|false- Parâmetros da função.
Retorno
gestor_variaveis_globais
ver no código · linha 2543 ↗gestor_variaveis_globais(array|false $params = false): string|nullObtém uma variável global específica do sistema.
Parâmetros
$paramsarray|false- Parâmetros da função.
Retorno
gestor_variaveis_alterar
ver no código · linha 2606 ↗gestor_variaveis_alterar(array|false $params = false): voidAltera o valor de uma variável no banco de dados.
Parâmetros
$paramsarray|false- Parâmetros da função.
Retorno
gestor_redirecionar_raiz
ver no código · linha 2655 ↗gestor_redirecionar_raiz(): voidRedireciona para a página raiz do módulo atual.
Retorno
gestor_reload_url
ver no código · linha 2686 ↗gestor_reload_url(): voidRecarrega a URL atual.
Retorno
gestor_csrf_rotas_identidade
ver no código · linha 2707 ↗gestor_csrf_rotas_identidade(): array<int,string>Rotas públicas de identidade cujo formulário carrega um token CSRF de uso único.
Retorno
gestor_csrf_destino_recarregamento
ver no código · linha 2735 ↗gestor_csrf_destino_recarregamento(string $caminhoTotal, string|null $referer, string $urlRaiz): stringDestino de recarregamento limpo para a tela de erro de CSRF (req-125 / BATCH-127).
Parâmetros
$caminhoTotalstring- Caminho da requisição corrente, já sem o prefixo de idioma.
$refererstring|null- Conteúdo de
HTTP_REFERER, se houver. $urlRaizstring- Raiz do gestor, com barra final e com idioma quando houver.
Retorno
gestor_pagina_menu_icone_lucide_valido
ver no código · linha 2794 ↗gestor_pagina_menu_icone_lucide_valido(string $nome): boolUm nome é endereçável no catálogo do Lucide? (req-125 / BATCH-127)
Parâmetros
$nomestring- Valor já resolvido do ícone.
Retorno
gestor_pagina_menu_icone_lucide_atributo
ver no código · linha 2814 ↗gestor_pagina_menu_icone_lucide_atributo(string $nome): stringAtributo data-lucide pronto para interpolação — ou string vazia (req-125 / BATCH-127).
Parâmetros
$nomestring- Valor já resolvido do ícone.
Retorno
data-lucide="…" ou ''.gestor_querystring_remover_variavel
ver no código · linha 2832 ↗gestor_querystring_remover_variavel(string $queryString, string $removerVariavel = ''): stringRemove uma variável específica da query string.
Parâmetros
$queryStringstring- Query string completa (formato: var1=val1&var2=val2).
$removerVariavelstring- Nome da variável a ser removida.
Retorno
gestor_querystring_variavel
ver no código · linha 2861 ↗gestor_querystring_variavel(string $queryString, string $variavel = ''): stringObtém o valor de uma variável específica da query string.
Parâmetros
$queryStringstring- Query string completa.
$variavelstring- Nome da variável a buscar.
Retorno
gestor_querystring_before_submit
ver no código · linha 2886 ↗gestor_querystring_before_submit(string $fieldName = '_c2f_query_string_before_submit', string $default = ''): stringRecupera a query string antes do envio do formulário via campo hidden.
Parâmetros
$fieldNamestring- Nome do campo hidden enviado pelo formulário.
$defaultstring- Valor padrão se o campo não estiver definido.
Retorno
gestor_querystring
ver no código · linha 2909 ↗gestor_querystring(string $removerVariavel = ''): stringObtém a query string atual da requisição.
Parâmetros
$removerVariavelstring- Nome da variável adicional a remover (opcional).
Retorno
gestor_redirecionar
ver no código · linha 2941 ↗gestor_redirecionar(string|false $local = false, string $queryString = '', bool $externo = false): voidRedireciona para um local específico.
Parâmetros
$localstring|false- Caminho de destino (false = usar sessão ou raiz).
$queryStringstring- Query string adicional.
$externobool- Se true, trata como URL externa (não adiciona url-raiz).
Retorno
gestor_redirecionar_montar_url
ver no código · linha 2981 ↗gestor_redirecionar_montar_url(string $local, string $queryString = ''): stringMonta a URL de destino de um redirecionamento (req-173).
Parâmetros
$localstring- Destino já resolvido (interno ou externo).
$queryStringstring- Query string a anexar, com ou sem
?/&à frente.
Retorno
? órfão).gestor_pagina_variaveis_globais
ver no código · linha 3006 ↗gestor_pagina_variaveis_globais(array|false $params = false): stringSubstitui variáveis globais em HTML.
Parâmetros
$paramsarray|false- Parâmetros da função.
Retorno
gestor_js_variavel_incluir
ver no código · linha 3101 ↗gestor_js_variavel_incluir(string $variavel, mixed $valor): voidInclui uma variável JavaScript global na página.
Parâmetros
$variavelstring- Nome da variável JavaScript.
$valormixed- Valor da variável (será convertido para JSON).
Retorno
gestor_componentes_incluir
ver no código · linha 3131 ↗gestor_componentes_incluir(array|false $params = false): voidMarca componentes para inclusão na página.
Parâmetros
$paramsarray|false- Parâmetros da função.
Retorno
gestor_componentes_incluir_pagina
ver no código · linha 3172 ↗gestor_componentes_incluir_pagina(array|false $params = false): voidRenderiza componentes marcados na página.
Parâmetros
$paramsarray|false- Parâmetros da função (atualmente não utilizados).
Retorno
gestor_cookie_emitir
ver no código · linha 3225 ↗gestor_cookie_emitir($nome, $valor, array $opcoes)Distributed iframe cookies are host-only and partitioned by the embedding site.
Parâmetros
$nome$valor$opcoesarray
gestor_cookie_is_secure
ver no código · linha 3236 ↗gestor_cookie_is_secure(): boolRetorno
gestor_sessao_iniciar
ver no código · linha 3258 ↗gestor_sessao_iniciar()gestor_sessao_id
ver no código · linha 3292 ↗gestor_sessao_id(): intObtém ou cria o ID numérico da sessão no banco de dados.
Retorno
gestor_sessao_del
ver no código · linha 3368 ↗gestor_sessao_del(): voidDeleta a sessão atual do usuário.
Retorno
gestor_sessao_variavel
ver no código · linha 3419 ↗gestor_sessao_variavel(string $variavel, mixed $valor = NULL): mixedObtém ou define uma variável de sessão.
Parâmetros
$variavelstring- Nome da variável de sessão.
$valormixed- Valor a ser armazenado (NULL para apenas leitura).
Retorno
gestor_sessao_variavel_del
ver no código · linha 3487 ↗gestor_sessao_variavel_del(string $variavel): voidRemove uma variável específica da sessão.
Parâmetros
$variavelstring- Nome da variável a ser removida.
Retorno
gestor_sessao_del_all
ver no código · linha 3520 ↗gestor_sessao_del_all(): voidRemove TODAS as sessões do sistema.
Retorno
gestor_modulos_dados
ver no código · linha 3543 ↗gestor_modulos_dados(string $modulo_id = ''): array|nullPega os dados de um módulo.
Parâmetros
$modulo_idstring- ID do módulo.
Retorno
gestor_pagina_higienizar_ativo
ver no código · linha 3576 ↗gestor_pagina_higienizar_ativo()Decide se o HTML entregue ao navegador deve sair higienizado (req-132).
gestor_html_higienizar
ver no código · linha 3615 ↗gestor_html_higienizar($html)Remove do HTML o que so interessa a quem escreveu o codigo (req-132).
Parâmetros
$html
gestor_js_higienizar
ver no código · linha 3721 ↗gestor_js_higienizar($js)Remove comentarios e indentacao de JavaScript (req-132, 2a rodada).
Parâmetros
$js
gestor_js_barra_inicia_regex
ver no código · linha 3826 ↗gestor_js_barra_inicia_regex($anterior)Decide se uma / abre um regex literal ou e o operador de divisao (req-132).
Parâmetros
$anterior
gestor_pagina_higienizar_js_ativo
ver no código · linha 3844 ↗gestor_pagina_higienizar_js_ativo()Gate proprio para a limpeza do JavaScript (req-132, 2a rodada).
gestor_html_script_e_javascript
ver no código · linha 3865 ↗gestor_html_script_e_javascript($tagCompleta)Diz se a tag <script> carrega JavaScript de verdade (req-132, 2a rodada).
Parâmetros
$tagCompleta
Estado controlado, layouts por perfil e cookies
GestorState fornece gestor_get, gestor_set, gestor_has e gestor_contexto. A leitura prioriza a chave literal e depois resolve notação por pontos; a escrita bloqueia raiz-absoluta, url-raiz, linguagem-codigo e versao-num e registra auditoria. Isso não impede atribuição direta às superglobais: é proteção da fachada.
gestor_layouts_perfis_mapa normaliza JSON/objeto/array num mapa de perfil para layout, descartando entradas não escalares ou vazias. gestor_css_layouts_marcador emite IDs válidos, únicos e ordenados no comentário c2f-layouts; gestor_css_layouts_cobertos lê o marcador nos primeiros 2048 bytes do CSS.
gestor_cookie_emitir usa setcookie no modo comum. No modo distribuído exige transporte seguro e emite Path=/_distributed/, Secure, SameSite=None e Partitioned, com HttpOnly/Expires quando pedidos.