feliperamaral / zfheadbuild
Zend Framework 2/3 module for assests builds
Requires
- php: >=5.4
- zendframework/zend-view: 2.*
This package is not auto-updated.
Last update: 2025-01-04 19:12:22 UTC
README
Como funciona:
Hoje em dia é muito utilizado automatizadores de tarefas para front-end como Grunt
, Gulp
e etc.
Geralmente é utilizado packages
para gerar builds
do CSS e JS como build/js/app-9783118bf8.js
Então esse modulo é para justamente recupear essa versão de build e adicionar na sua view
como:
VIEW.phtml:
<?php echo $this->headScript()->prependFileBuild('js/app.js');
HTML:
<script type="text/javascript" src="/build/js/app-9783118bf8.js`"></script>
Instalação
- Adicione no composer.json do seu projeto
"require" : { "feliperamaral/zfheadbuild" : "1.*@stable" }
- Rode o seguinte comando
$ php composer.phar update
Após a instalação
Opção 1 - Instalar como modulo
- Adicione o modulo no seu
application.config.php
<?php return array( 'modules' => array( //... 'HeadBuild' ), //... );
Opção 2 - Adicione diretamente no seu modulo (recomendado)
Dessa forma não é preciso inicializar um modulo inteiro
- Adicione o seguinte helper no seu
[modulo]/config/module.config.php
<?php return array( //... 'view_helpers' => array( //.. 'invokables' => array( //... 'headlink' => 'HeadBuild\View\Helper\HeadLink', 'headscript' => 'HeadBuild\View\Helper\HeadScript', ), ), );
Configurações
Você pode configurar manualmente os caminhos para a sua pasta de build
Duas variáveis estão incluídas no processo, que são: public_path
e manifest_file
O valor padrão de manifest_file
é build\rev-manifest.json
O valor padrão de public_path
é calculado automaticamente com base no seu index.php
(ou qualquer arquivo que o seu Rewrite
aponte)
Alterar configurações padrão
No seu arquivo de configuração [modulo]/config/module.config.php
, adicione o seguinte:
<?php return [ 'headbuild' => [ 'public_path' => 'caminho/para/meu/public/', 'manifest_file' => 'build-path\arquivo-json.json' ],
Como usar
É adicionado dinâmicamente a versão ...Build([...])
à todos os métodos dos helpers HeadLink
e HeadScript
Na sua view:
VIEW.phtml:
<?php echo $this->headLink() ->appendStylesheetBuild('css/app.css') ->appendStylesheetBuild($this->basePath('css/lib.css')); echo $this->headScript() ->prependFileBuild('js/app.js') ->appendFile($this->basePath('js/lib.js'));
HTML:
<link href="/my-application/build/css/app-f7bf2c660c.css" media="screen" rel="stylesheet" type="text/css"> <link href="/my-application/css/lib.css" media="screen" rel="stylesheet" type="text/css"> <script type="text/javascript" src="/my-application/build/js/app-9783118bf8.js`"></script> <script type="text/javascript" src="/my-application/js/lib.js"></script>
Observe que não é preciso usar o $this->basePath(...) no método de build
Observe também que os outros métodos continuam funcionando normalmente
Todos os métodos possuem os mesmo parâmetros dos métodos equivalentes
Métodos HeadScript
$this->headScript()->appendFile([...]);
$this->headScript()->appendFileBuild([...]);
$this->headScript()->offsetSetFile([...]);
$this->headScript()->offsetSetFileBuild([...]);
$this->headScript()->prependFile([...]);
$this->headScript()->prependFileBuild([...]);
$this->headScript()->setFile([...]);
$this->headScript()->setFileBuild([...]);
$this->headScript()->appendScript([...]);
$this->headScript()->appendScriptBuild([...]);
$this->headScript()->offsetSetScript([...]);
$this->headScript()->offsetSetScriptBuild([...]);
$this->headScript()->prependScript([...]);
$this->headScript()->prependScriptBuild([...]);
Métodos HeadLink
$this->headLink()->appendStylesheet([...]); $this->headLink()->appendStylesheetBuild([...]); $this->headLink()->offsetSetStylesheet([...]); $this->headLink()->offsetSetStylesheetBuild([...]); $this->headLink()->prependStylesheet([...]); $this->headLink()->prependStylesheetBuild([...]); $this->headLink()->setStylesheet([...]); $this->headLink()->setStylesheetBuild([...]); $this->headLink()->appendAlternate([...]); $this->headLink()->appendAlternateBuild([...]); $this->headLink()->offsetSetAlternate([...]); $this->headLink()->offsetSetAlternateBuild([...]); $this->headLink()->prependAlternate([...]); $this->headLink()->prependAlternateBuild([...]); $this->headLink()->setAlternate([...]); $this->headLink()->setAlternateBuild([...]);