feliperamaral/zfheadbuild

Zend Framework 2/3 模块,用于资产构建

v1.1.1 2017-04-05 14:57 UTC

This package is not auto-updated.

Last update: 2024-09-14 17:37:35 UTC


README

如何工作

如今,很多前端任务自动化工具被广泛使用,如 GruntGulp 等。

通常,使用 packages 生成 CSSJSbuilds,如 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>

安装

  1. 将以下内容添加到您的项目的 composer.json 中
 "require" : {
		"feliperamaral/zfheadbuild" : "1.*@stable"
    }
  1. 运行以下命令
$ php composer.phar update

安装后

选项 1 - 作为模块安装

  1. 将模块添加到您的 application.config.php
<?php
return array(
	'modules' => array(
    	//...
        'HeadBuild'
    ),
    //...
);

选项 2 - 直接添加到您的模块中(推荐)

这样就不必初始化整个模块

  1. 在您的 [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_pathmanifest_file

manifest_file 的默认值是 build\rev-manifest.jsonpublic_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'
    ],

如何使用

动态地向 HeadLinkHeadScript 的所有方法添加 ...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([...]);