Caminho no Gestor bibliotecas/recursos.php
Resolve a URL de um asset estático (JS, CSS, imagem, fonte) do Gestor ou de um módulo. Carregada sempre pelo config.php.
O código do Gestor fica fora da pasta pública. Há duas formas de um asset chegar ao navegador:
-
Publicado em
public_html/dist/: oc2f assets:publish(chamado peloresources:synce pelo deploy) copia os assets para lá e grava o inventáriodist/.manifest.json. O Nginx ou o Apache servem o arquivo direto do disco, sem PHP. -
Pelo controlador
arquivo-estatico: sem publicação, a URL histórica (<url-raiz>interface/interface.js) passa pelo PHP, que lê o arquivo degestor/assets/ou do módulo.
recursos_url() escolhe o dist/ só quando o arquivo consta no manifesto. Em desenvolvimento, numa instalação nova ou com um asset ainda não publicado, a URL continua sendo a antiga, e nada quebra.
Uso
echo recursos_tag_js('interface/interface.js', $versao, 'defer');
echo recursos_tag_css('admin-arquivos/css.css');
$url = recursos_url_versionada('images/logo.png');| Função | Faz |
|---|---|
recursos_url($caminho, $base = null) |
URL em dist/ se publicado; senão <url-raiz ou $base><caminho> |
recursos_versao($caminho, $padrao = null) |
O hash do conteúdo, do manifesto; senão $padrao; senão gestor_asset_version() |
recursos_url_versionada() |
recursos_url() + ?v=<versão> |
recursos_tag_js() / recursos_tag_css() |
A tag <script> / <link rel="stylesheet"> pronta |
recursos_publicado($caminho) / recursos_dist_ativo() |
Consultas ao manifesto carregado em $_GESTOR['dist-manifest'] |
recursos_caminho_normalizar($caminho) |
Tira ?/#, barras extras e iniciais; recusa .. e byte nulo ('') |
recursos_dist_mapear_fonte($relativo) |
O contrato fonte → dist/, compartilhado com o assets:publish |
O contrato de caminhos
O caminho dentro de dist/ é o mesmo da URL pública:
| Fonte no Gestor | Em dist/ e na URL |
|---|---|
assets/<caminho> |
<caminho> |
modulos/<m>/<m>.js / <m>.css |
<m>/js.js / <m>/css.css |
modulos/<m>/<m>.<opcao>.js |
<m>/<opcao>.js |
O .min.js não tem caminho próprio: é a variante preferida do arquivo de autoria, escolhida na publicação e, em runtime, pelo arquivo-estatico.
A pasta dist/ usa url-raiz-sem-lang: um mesmo arquivo não ganha uma URL por idioma. dist-ativo liga sozinho em produção e pode ser forçado com ASSETS_DIST no .env; PUBLIC_PATH diz onde está a pasta pública quando o Gestor roda pelo CLI (variáveis globais).
Funções
Gerado a partir de gestor/bibliotecas/recursos.php · 9 funções
recursos_caminho_normalizar
ver no código · linha 43 ↗recursos_caminho_normalizar(string $caminho): stringNormaliza um caminho de asset para a forma usada como chave do manifesto.
Parâmetros
$caminhostring- Caminho relativo do asset, como aparece na URL.
Retorno
recursos_dist_ativo
ver no código · linha 61 ↗recursos_dist_ativo()Indica se a instalação tem assets publicados e habilitados para entrega direta.
recursos_publicado
ver no código · linha 73 ↗recursos_publicado(string $caminho): boolInforma se um asset consta no manifesto publicado em dist/.
Parâmetros
$caminhostring- Caminho relativo do asset (com ou sem query string).
Retorno
recursos_url
ver no código · linha 102 ↗recursos_url(string $caminho, string|null $base = null): stringURL pública de um asset.
Parâmetros
$caminhostring- Caminho relativo do asset, opcionalmente com query string.
$basestring|null- Raiz pública usada no fallback; null usa
url-raiz.
Retorno
src/href.recursos_versao
ver no código · linha 128 ↗recursos_versao(string $caminho, string|null $versaoPadrao = null): stringToken de cache busting de um asset publicado.
Parâmetros
$caminhostring- Caminho relativo do asset.
$versaoPadraostring|null- Versão usada quando o asset não está publicado.
Retorno
recursos_url_versionada
ver no código · linha 149 ↗recursos_url_versionada(string $caminho, string|null $versao = null, string|null $base = null): stringURL de um asset já com o parâmetro de cache busting.
Parâmetros
$caminhostring- Caminho relativo do asset.
$versaostring|null- Versão a usar quando o asset não está publicado.
$basestring|null- Raiz pública do fallback; null usa
url-raiz.
Retorno
recursos_tag_js
ver no código · linha 162 ↗recursos_tag_js(string $caminho, string|null $versao = null, string $extra = '', string|null $base = null): stringTag <script> de um asset do gestor.
Parâmetros
$caminhostring- Caminho relativo do asset.
$versaostring|null- Versão usada quando o asset não está publicado.
$extrastring- Atributos adicionais já formatados (ex.:
defer). $basestring|null- Raiz pública do fallback; null usa
url-raiz.
Retorno
recursos_tag_css
ver no código · linha 177 ↗recursos_tag_css(string $caminho, string|null $versao = null, string $extra = '', string|null $base = null): stringTag <link rel="stylesheet"> de um asset do gestor.
Parâmetros
$caminhostring- Caminho relativo do asset.
$versaostring|null- Versão usada quando o asset não está publicado.
$extrastring- Atributos adicionais já formatados (ex.:
data-c2f-css-role="quill"). $basestring|null- Raiz pública do fallback; null usa
url-raiz.
Retorno
recursos_dist_mapear_fonte
ver no código · linha 204 ↗recursos_dist_mapear_fonte(string $relativo): stringContrato de mapeamento entre o arquivo FONTE no gestor e o caminho publicado em dist/.
Parâmetros
$relativostring- Caminho do arquivo relativo à raiz do gestor, com
/como separador.
Retorno
dist/, ou '' quando o arquivo não é publicável.