laradic/assets

Laravel 5 资产管理器。功能齐全、灵活、可扩展,经过彻底测试和文档化。

1.0.2 2017-05-28 19:31 UTC

This package is not auto-updated.

Last update: 2024-09-15 03:18:54 UTC


README

Build Status Scrutinizer coverage Scrutinizer quality Source License

Laradic Assets 是 Laravel 5 框架的一个包。它适用于 Laravel 5.4+ 和 PHP 7.0+

该包遵循 FIG 标准 PSR-1、PSR-2 和 PSR-4,以确保共享 PHP 代码之间的高互操作性。

安装

composer require laradic/assets "~1.0"

另外,为了某些 Assetic 过滤器能够正常工作,您可能需要以下之一

{
        "leafo/lessphp": "^0.3.7",
        "leafo/scssphp": "~0.1",
        "meenie/javascript-packer": "^1.1",
        "mrclay/minify": "<2.3",
        "natxet/cssmin": "3.0.4",
        "patchwork/jsqueeze": "~1.0|~2.0",
        "ptachoire/cssembed": "~1.0",
        "twig/twig": "~1.23|~2.0"
}

文档

有关 完整文档,请参阅 Laradic Assets 包的文档。

快速浏览

laradic/assets 包是 Laravel 5 的资产管理器。它使用 Assetic 的过滤器以提供高功能。它提供了一个方便的方式来处理您的资产。

概述

  • 可以定义和编译单个 Asset
  • 编译将在资产上运行所有配置的过滤器,并将结果写入到 cache_path。返回 Compiler\Compiled 实例
  • Asset 可以在 AreaGroup 化。您可以将 Area 视为“组组”。例如,您可以创建 package-name/frontendpackage-name/admin
  • 要使用 Group,您至少需要定义 1 个 Area

创建

这将根据给定的参数创建一个 Asset 实例。请参阅 Asset 文档以了解可能性。

$asset = Asset::create('script', 'global/plugins/jquery.min.js');

编译

这将运行资产上所有配置的过滤器,并将结果写入到 cache_path。返回 Compiler\Compiled 实例

$compiled = Asset::compile('script', 'global/plugins/jquery.min.js');
echo $compiled->getUrl();   # full url to the compiled asset
echo $compiled->getHtml();  # script/link html tag
echo $compiled->getUri();   # uri to the compiled asset
echo $compiled->getPath();  # absolute file path to the compiled asset

分组

分组资产带来了一些优点

  • 允许在其 Group 内定义 Asset 的依赖项
  • 允许在其 Area 内定义 Group 的依赖项
  • 手动或自动编译 AreaGroupAsset
$area = Asset::area('area/package');
$group = $area->group('global');
$group->add('bootstrap', 'css/bootstrap.css');
$group->add('font-awesome', 'global/plugins/font-awesome/css/font-awesome.min.css', 'bootstrap');
链式调用
Asset::area('area/package')
     ->group('global')
     ->add('bootstrap', 'css/bootstrap.css')
     ->add('font-awesome', 'global/plugins/font-awesome/css/font-awesome.min.css', 'bootstrap');

// At a later point, you can continue adding
Asset::area('area/package')
     ->group('global')
     ->add('simple-line-icons', 'global/plugins/simple-line-icons/simple-line-icons.min.css', 'bootstrap')
     ->add('uniform', 'global/plugins/uniform/css/uniform.default.css', 'bootstrap');
编译和输出

在定义完区域/组之后,您可以手动触发编译并使用 Compiler\Compiled::getHtml 方法来输出它。

Asset::area('area/package')
     ->group('global')
     ->compile('script', $combine = true)
     ->getHtml();

Asset 门面链接到 Factory 类实例。区域、组和资产定义利用 NamespacedItemResolver。这意味着一些 Factory 方法接受这样的定义

// Query
Asset::query
// Compiles the scripts in group
Asset::compile('script', 'area/package::global', $combine = true)->getHtml();