dmlogic / assets
该包已被放弃且不再维护。没有建议的替代包。
静态资源管理器
0.1
2013-03-21 11:07 UTC
Requires
- php: >=5.3.0
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或许?