Conn2Flow
Navegação das docs

Referência / Bibliotecas

Biblioteca assets-externos.php

Registro único das bibliotecas de terceiros (jQuery, Fomantic, CodeMirror, Quill, Tailwind no navegador…) com versão fixa, servidas do disco e com CDN só como fallback.

Caminho no Gestor bibliotecas/assets-externos.php

Todo JavaScript e CSS de terceiros que o Gestor usa passa por um registro único, com a versão fixada. Um módulo não escreve a tag: pede assets_externos_incluir('codemirror').

O arquivo é servido de gestor/assets/vendor/<biblioteca>/<versão>/ quando existe, e do CDN do registro quando não existe. Assim o IP do visitante não vai para CDNs de terceiros, e uma publicação nova no npm não entra em produção sem revisão.

Bibliotecas registradas

Nome Versão Arquivos
jquery 3.7.1 jquery.min.js
fomantic-ui 2.9.4 semantic.min.css/.js + fontes e ícones do tema
fomantic-icon 2.9.4 Só os ícones, para layouts Tailwind
codemirror 5.65.20 Núcleo, tema, addons e modos HTML/CSS/JS/Markdown
quill 2.0.3 quill.snow.css, quill.min.js
sortablejs 1.15.6 Sortable.min.js
lucide 0.544.0 lucide.min.js
qrcodejs 1.0.0 qrcode.min.js
fingerprintjs 4 fp.min.js
tailwindcss-browser 4.3.0 Compilador do Tailwind usado no editor visual; acompanha a versão do build offline

Os arquivos das instalações novas já vêm em gestor/assets/vendor/. Para baixar o que faltar (ou uma versão nova depois de mudar o registro):

c2f assets:vendor [--lib=codemirror] [--listar] [--forcar]

A entrada arquivos de uma biblioteca lista o que é baixado mas não vira tag (as fontes que o CSS pede por caminho relativo). Sem elas, servido do disco, o Fomantic fica sem ícones.

Uso

gestor_incluir_biblioteca('assets-externos');
assets_externos_incluir('sortablejs');                  // false se o nome não está registrado
$tags = assets_externos_tags('quill', $vendorFisico, $vendorPublico);   // ['css' => [...], 'js' => [...]]
$mapa = assets_externos_urls_js(['codemirror']);        // biblioteca => arquivo => URL, para o JavaScript

assets_externos_urls_js() existe para o que monta tags no navegador (os iframe de pré-visualização e a barra de edição): recebem as mesmas URLs, sem conhecer versão nem host.

Armadilhas

  • A troca para o CDN é silenciosa: um arquivo ausente em vendor/ sai do CDN sem aviso. Depois de mudar uma versão, rode c2f assets:vendor.

  • assets_externos_incluir() põe as tags de CSS pela gestor_pagina_css_incluir($tag), que as empilha na fila de JavaScript do fim da página (gestor.php). O CSS funciona, mas carrega depois do conteúdo.

  • A URL local usa url-raiz, que inclui o prefixo de idioma quando ele está na URL.

Auxiliares internos (usados pelas funções acima; raramente chamados direto): assets_externos_registro(), assets_externos_url(), assets_externos_urls_map().

Funções

Gerado a partir de gestor/bibliotecas/assets-externos.php · 6 funções

6 de 6

assets_externos_registro

ver no código · linha 47 ↗
assets_externos_registro(): array<string, array{versao: string, cdn: string, css: list<string>, js: list<string>}>

Registro central: nome => versão + arquivos.

Retorno

array<string, array{versao: string, cdn: string, css: list<string>, js: list<string>}>

assets_externos_url

ver no código · linha 217 ↗
assets_externos_url(array $lib, string $nome, string $arquivo, string $vendorFisico, string $vendorPublico): string

URL de um arquivo da biblioteca: local quando existe, CDN como fallback.

Parâmetros

$libarray
Entrada do registro.
$nomestring
Identificador da biblioteca (subdiretório em vendor/).
$arquivostring
Nome do arquivo dentro da biblioteca.
$vendorFisicostring
Caminho físico de assets/vendor/ (com separador final).
$vendorPublicostring
URL pública de vendor/ (com barra final).

Retorno

string

assets_externos_tags

ver no código · linha 238 ↗
assets_externos_tags(string $nome, string $vendorFisico = '', string $vendorPublico = ''): array{css: list<string>, js: list<string>}

Tags de uma biblioteca registrada.

Parâmetros

$nomestring
Identificador no registro.
$vendorFisicostring
Caminho físico de assets/vendor/.
$vendorPublicostring
URL pública de vendor/.

Retorno

array{css: list<string>, js: list<string>}

assets_externos_urls_map

ver no código · linha 279 ↗
assets_externos_urls_map(list<string> $nomes = Array(), string $vendorFisico = '', string $vendorPublico = ''): array<string, array<string, string>>

Mapa biblioteca => arquivo => URL das bibliotecas pedidas (req-156).

Parâmetros

$nomeslist<string>
Identificadores no registro; vazio devolve todas as bibliotecas.
$vendorFisicostring
Caminho físico de assets/vendor/.
$vendorPublicostring
URL pública de vendor/.

Retorno

array<string, array<string, string>>

assets_externos_urls_js

ver no código · linha 308 ↗
assets_externos_urls_js(list<string> $nomes = Array()): array<string, array<string, string>>

assets_externos_urls_map() resolvido com os caminhos do ambiente corrente (req-156).

Parâmetros

$nomeslist<string>
Identificadores no registro.

Retorno

array<string, array<string, string>>

assets_externos_incluir

ver no código · linha 329 ↗
assets_externos_incluir(string $nome): bool

Inclui uma biblioteca de terceiro no pipeline da página.

Parâmetros

$nomestring
Identificador no registro (ex.: sortablejs).

Retorno

bool
false quando a biblioteca não está registrada.

O Futuro é Híbrido: Humano + IA.

O Conn2Flow é a ferramenta. Se você precisa do Arquiteto para desenhar a estratégia da sua empresa usando essa tecnologia...

Contrate Consultoria Especializada