feliperamaral / zfheadbuild
Zend Framework 2/3 模块,用于资产构建
v1.1.1
2017-04-05 14:57 UTC
Requires
- php: >=5.4
- zendframework/zend-view: 2.*
This package is not auto-updated.
Last update: 2024-09-14 17:37:35 UTC
README
如何工作
如今,很多前端任务自动化工具被广泛使用,如 Grunt
、Gulp
等。
通常,使用 packages
生成 CSS 和 JS 的 builds
,如 build/js/app-9783118bf8.js
。
因此,该模块正是为了恢复这个版本的 build 并将其添加到您的 view
中,如下所示:
VIEW.phtml
<?php echo $this->headScript()->prependFileBuild('js/app.js');
HTML
<script type="text/javascript" src="/build/js/app-9783118bf8.js`"></script>
安装
- 将以下内容添加到您的项目的 composer.json 中
"require" : { "feliperamaral/zfheadbuild" : "1.*@stable" }
- 运行以下命令
$ php composer.phar update
安装后
选项 1 - 作为模块安装
- 将模块添加到您的
application.config.php
<?php return array( 'modules' => array( //... 'HeadBuild' ), //... );
选项 2 - 直接添加到您的模块中(推荐)
这样就不必初始化整个模块
- 在您的
[modulo]/config/module.config.php
中添加以下 helper
<?php return array( //... 'view_helpers' => array( //.. 'invokables' => array( //... 'headlink' => 'HeadBuild\View\Helper\HeadLink', 'headscript' => 'HeadBuild\View\Helper\HeadScript', ), ), );
配置
您可以手动配置 build 文件夹的路径
在过程中包含两个变量,分别是:public_path
和 manifest_file
manifest_file
的默认值是 build\rev-manifest.json
,public_path
的默认值是根据您的 index.php
(或任何由您的 Rewrite
指向的文件)自动计算的
修改默认配置
在您的配置文件 [modulo]/config/module.config.php
中添加以下内容
<?php return [ 'headbuild' => [ 'public_path' => 'caminho/para/meu/public/', 'manifest_file' => 'build-path\arquivo-json.json' ],
如何使用
动态地向 HeadLink
和 HeadScript
的所有方法添加 ...Build([...])
版本
在您的视图中
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>
请注意,在构建方法中不需要使用 $this->basePath(...)
同时请注意,其他方法仍然正常工作
所有方法都具有等效方法相同的参数
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([...]);
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([...]);