dmlogic/assets

该包已被放弃且不再维护。没有建议的替代包。

静态资源管理器

0.1 2013-03-21 11:07 UTC

This package is auto-updated.

Last update: 2022-05-19 08:39:51 UTC


README

另一个适用于PHP 5.3+的静态资源管理器包

该包旨在支持以下工作流程

  • 资源被定义为包含一个或多个样式表或脚本的容器
  • 容器内容在不同环境中可以不同
  • 您的应用控制器或端点可以通过一个非常简单的接口渲染容器,以供视图使用
  • 该包目前不编译或合并资源 - 您可以通过构建/部署过程进行,并在您的环境中反映不同的容器内容
  • 非常易于扩展。可以添加更多静态资源,例如SASS、LESS或Coffeescript。或者甚至可能是一个Image类,它可以输出Picture元素。请参阅类中的注释以获取更多信息

安装

通过Composer(dmlogic/assets)安装或

include 'Assets/Assets.php';
include 'Assets/StaticAsset.php';
include 'Assets/Script.php';
include 'Assets/Style.php';

use Dmlogic\Assets\Assets as Assets;

安装到Laravel 4

将以下内容添加到composer.json文件的'require'部分。

"dmlogic/assets": "*"

现在运行composer update

您现在可以通过命名空间立即使用该包,例如

$myContainer = Dmlogic\Assets\Assets::container();

但是,为了更容易使用,请完成以下步骤。

添加别名

打开文件app/config/app.php,并在'aliases'数组中添加一行

'Assets' => 'Dmlogic\Assets\Assets'

现在您可以使用以下方式访问主类

$myContainer = Assets::container();

使用级联配置文件

在您的app/config文件夹中创建一个assets.php文件,并添加一个数组,如以下“从文本数组生成容器”部分所述。

然后复制并调整此文件以适应您不同的环境文件夹。

使用

该接口是Laravel 3 Asset类的一种简化形式。创建一个或多个容器,将资源添加到它们中,然后在视图中渲染。

创建新的容器

这个将被称为'default'

$myContainer = Assets::container();

这个将被称为'home'

$homeContainer = Assets::container('home');

添加资源

$myAsset = new Dmlogic\Assets\Style(array(
                                        'path'  => '/assets/css/bootstrap.css',
                                        'media' => 'screen'
                                     ))
$myContainer->add($myAsset);

渲染容器

<?= $myContainer->styles() ?>

<?= $myContainer->scripts() ?>

创建命名容器并在一条命令中添加多个资源

$myAssets = array(

    new Dmlogic\Assets\Style(array(
                                'path'  => '/assets/css/bootstrap.css',
                                'media' => 'screen'
                             )),

    new Dmlogic\Assets\Style(array(
                                'path'  => '/assets/css/print.css',
                                'media' => 'print'
                             )),

    new Dmlogic\Assets\Script(array(
                                'path' => '/assets/js/bootstrap.js',
                              ))

    new Dmlogic\Assets\Script(array(
                                'inline' => 'console.log("useful, huh?")'
                              ))
);

Assets::container('home')->add($myAssets);

从命名容器渲染资源

echo Assets::container('home')->styles();

echo Assets::container('home')->scripts();

从文本数组生成容器

此包最可能的应用之一是在配置文件中定义容器,这些配置文件针对不同的环境而有所不同。提供了一个名为 createContainer() 的方法来简化这一过程。它接受两个参数,一个格式如 此处所述 的配置数组以及容器的名称。

$containers = include '/config/packages/[your_environment]/assets.php';

$defaultAssets = Assets::createContainer( $containers['default'] );

$homeAssets = Assets::createContainer( $containers['home'], 'home' );

路线图

  • 合理的异常处理
  • 图片元素资产类型或许?
  • 较大尺寸的图片资产类型或许?
  • 为旧版IE提供PNG回退的SVG或许?