\Numenor\HtmlControleCss

Classe de controle para inclusão de arquivos CSS em páginas HTML.

Arquivos CSS podem ser concatenados, minificados e gzipados para melhorar o desempenho da página onde são carregados.

Summary

Methods
Properties
Constants
__construct()
setComportamentoPadrao()
gerarCodigoInclusao()
adicionarCss()
setMinificadorCss()
setConversorCaminho()
No public properties found
COMPORTAMENTO_PADRAO_DEV
COMPORTAMENTO_PADRAO_HOMOLOG
COMPORTAMENTO_PADRAO_PROD
gerarListaConcatCompact()
gerarListaConcat()
gerarListaCompact()
gerarListaNormal()
gerarNome()
gerarListaRemoto()
corrigirCaminhoExterno()
minificar()
$arrayWrapper
$stringWrapper
$diretorioOutput
$urlBase
$comportamentoPadrao
$minificadorCss
$conversorCaminho
$listaCss
N/A
No private methods found
No private properties found
N/A

Constants

COMPORTAMENTO_PADRAO_DEV

COMPORTAMENTO_PADRAO_DEV

Define que o comportamento padrão da inclusão de assets será de ambiente de desenvolvimento.

COMPORTAMENTO_PADRAO_HOMOLOG

COMPORTAMENTO_PADRAO_HOMOLOG

Define que o comportamento padrão da inclusão de assets será de ambiente de homologação.

COMPORTAMENTO_PADRAO_PROD

COMPORTAMENTO_PADRAO_PROD

Define que o comportamento padrão da inclusão de assets será de ambiente de produção.

Properties

$arrayWrapper

$arrayWrapper : \Numenor\Php\ArrayWrapper;

Instância do objeto de encapsulamento das operações de array.

Type

\Numenor\Php\ArrayWrapper;

$stringWrapper

$stringWrapper : \Numenor\Php\StringWrapper;

Instância do objeto de encapsulamento das operações de string.

Type

\Numenor\Php\StringWrapper;

$diretorioOutput

$diretorioOutput : string

Diretório onde os arquivos processados (minificados, concatenados, gzipados, etc.) serão salvos.

Este diretório DEVE ter o acesso público liberado (normalmente, algo como [DIR_ROOT]/public/assets/[TIPO]/), ou os arquivos não funcionarão ao serem incluídos como assets na página.

Type

string

$urlBase

$urlBase : string

URL base de inclusão dos assets.

Este valor será utilizado para gerar os snippets de inclusão dos assets (tags [script], [link], [img], etc.), e normalmente reflete o diretório de output dos assets processados.

Type

string

$comportamentoPadrao

$comportamentoPadrao : string

Comportamento padrão do controlador de assets.

Por padrão, os arquivos de assets processados pelo controlador são tratados conforme suas configurações (minificados e concatenados em um só arquivo, minificados separadamente, concatenados sem minificação, ou adicionados sem nenhum processamento adicional). Esta configuração permite que este comportamento padrão seja sobrescrito de forma a facilitar o controle dos arquivos em determinados ambientes da aplicação:

  • Ambiente de desenvolvimento: nesse tipo de ambiente, todos os arquivos são adicionados como se tivessem sido configurados sem processamento adicional, de modo a facilitar o debug desses arquivos.
  • Ambiente de homologação: neste tipo de ambiente, os arquivos são processados conforme suas configurações, porém o sistema sempre gera novamente e sobrescreve os arquivos concatenados/minificados. Dessa maneira, não é necessário limpar os arquivos gerados a cada atualização. A penalidade de desempenho incorrida normalmente não é problema para ambientes de homologação.
  • Padrão/Ambiente de produção: neste tipo de ambiente, os arquivos são processados de acordo com suas configurações e é feita a verificação da existência dos arquivos resultantes antes de efetuar o processamento. Caso um ou mais assets sejam alterados, é necessário apagar os arquivos resultantes manualmente para que eles sejam regenerados.

Type

string

$minificadorCss

$minificadorCss : \MatthiasMullie\Minify\CSS

Componente de minificação dos assets CSS.

Type

\MatthiasMullie\Minify\CSS

$conversorCaminho

$conversorCaminho : \Numenor\Html\ConversorCaminho

Componente de conversão dos caminhos relativos dos assets CSS.

Type

\Numenor\Html\ConversorCaminho

$listaCss

$listaCss : array<mixed,\Numenor\Html\Css>

Lista de arquivos CSS adicionados para processamento na página.

Type

array<mixed,\Numenor\Html\Css>

Methods

__construct()

__construct(\Numenor\Php\ArrayWrapper  $arrayWrapper, \Numenor\Php\StringWrapper  $stringWrapper, \Numenor\Html\string  $diretorioOutput, \Numenor\Html\string  $urlBase) 

Método construtor da classe.

Parameters

\Numenor\Php\ArrayWrapper $arrayWrapper

Instância do objeto de encapsulamento das operações de array.

\Numenor\Php\StringWrapper $stringWrapper

Instância do objeto de encapsulamento das operações de string.

\Numenor\Html\string $diretorioOutput

Diretório onde os arquivos processados serão salvos.

\Numenor\Html\string $urlBase

URL base de inclusão dos assets.

setComportamentoPadrao()

setComportamentoPadrao(string  $comportamentoPadrao) : \Numenor\Html\Controle

Método setter do comportamento padrão do controlador de assets.

Parameters

string $comportamentoPadrao

Valor do comportamento padrão do controlador.

Returns

\Numenor\Html\Controle

Instância do próprio objeto para encadeamento.

gerarCodigoInclusao()

gerarCodigoInclusao() : string

Gera o snippet do código de inclusão dos assets adicionados à página.

Returns

string —

O snippet de inclusão dos arquivos processados.

adicionarCss()

adicionarCss(\Numenor\Html\Css  $css) : \Numenor\Html\ControleCss

Adiciona um arquivo CSS à lista de arquivos incluídos na página.

Parameters

\Numenor\Html\Css $css

Novo arquivo incluído na página.

Throws

\Numenor\Excecao\ExcecaoAssetDuplicado

se o asset informado já foi incluído anteriormente.

\Numenor\Excecao\ExcecaoAssetNaoExiste

se o arquivo do asset informado não existe.

Returns

\Numenor\Html\ControleCss

Instância do próprio objeto para encadeamento.

setMinificadorCss()

setMinificadorCss(\MatthiasMullie\Minify\CSS  $minificador) : \Numenor\Html\ControleCss

Define o minificador utilizado pelo sistema para processar e compactar os arquivos.

Parameters

\MatthiasMullie\Minify\CSS $minificador

Instância do minificador.

Returns

\Numenor\Html\ControleCss

Instância do próprio objeto para encadeamento.

setConversorCaminho()

setConversorCaminho(\Numenor\Html\ConversorCaminho  $conversor) : \Numenor\Html\ControleCss

Define o conversor de caminhos relativos utilizado pelo sistema para modificar os caminhos relativos definidos nos arquivos CSS não-minificados.

Parameters

\Numenor\Html\ConversorCaminho $conversor

Instância do conversor.

Returns

\Numenor\Html\ControleCss

Instância do próprio objeto para encadeamento.

gerarListaConcatCompact()

gerarListaConcatCompact(array  $listaAssets) : array

Gera a lista de arquivos de assets que devem ser minificados e concatenados.

Parameters

array $listaAssets

Lista de assets analisados.

Returns

array —

Lista de arquivos de assets que devem ser minificados e concatenados.

gerarListaConcat()

gerarListaConcat(array  $listaAssets) : array

Gera a lista de arquivos de assets que devem ser apenas concatenados, sem minificação.

Parameters

array $listaAssets

Lista de assets analisados.

Returns

array —

Lista de arquivos de assets que devem ser concatenados.

gerarListaCompact()

gerarListaCompact(array  $listaAssets) : array

Gera a lista de arquivos de assets que devem ser apenas minificados, sem concatenação.

Parameters

array $listaAssets

Lista de assets analisados.

Returns

array —

Lista de arquivos de assets que devem ser minificados.

gerarListaNormal()

gerarListaNormal(array  $listaAssets) : array

Gera a lista de arquivos de assets que devem ser incluídos sem nenhum processamento adicional.

Parameters

array $listaAssets

Lista de assets analisados.

Returns

array —

Lista de arquivos de assets que devem ser incluídos sem nenhum processamento adicional.

gerarNome()

gerarNome(array  $listaAssets) : string

Gera um nome único para uma lista de assets, criando um hash a partir da concatenação dos nomes individuais.

Parameters

array $listaAssets

Lista de nomes dos assets.

Returns

string —

Hash gerado a partir dos nomes dos assets listados.

gerarListaRemoto()

gerarListaRemoto(array  $listaAssets) : array

Gera a lista de arquivos de assets de inclusão remota.

Parameters

array $listaAssets

Lista de assets analisados.

Returns

array —

Lista de arquivos de assets de inclusão remota.

corrigirCaminhoExterno()

corrigirCaminhoExterno(string  $conteudo) : string

Corrige os caminhos relativos contidos em um arquivo CSS que não será processado pelo minificador.

Ao incluir um asset CSS, é necessário atualizar os caminhos relativos contidos nas instruções url() e @import, já que infelizmente não é possível definir uma URL base para os mesmos.

Esta operação é feita automaticamente pelo minificador quando o arquivo é processado para minificação, mas para arquivos concatenados e/ou normais não-remotos, é necessário efetuar esta operação normalmente.

O código deste método foi retirado da classe do minificador de CSS, de autoria de Matthias Mullie.

Parameters

string $conteudo

O conteúdo do arquivo CSS que deve ser processado.

Returns

string —

Conteúdo do arquivo CSS com os caminhos relativos corrigidos.

minificar()

minificar() 

Processa a lista de arquivos CSS incluídos, alterando-os conforme necessário (minificação, concatenação, etc.) e gerando os snippets de inclusão dos mesmos.