octris/assets

octris包资源的安装器。

安装: 7

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 0

开放问题: 0

类型:composer-plugin

v0.0.1 2017-06-03 01:17 UTC

This package is not auto-updated.

Last update: 2024-09-23 08:10:05 UTC


README

这是一个简单的octris PHP框架资源管理器,使其能够使用composer安装包含JavaScript、CSS、图片等模块的附加组件。资源管理器作为composer插件,与安装和更新命令挂钩。它尝试安装新资源,更新现有资源,并删除不再需要的资源。

配置

资源管理器需要在主包的composer.json文件以及包含资源的子包中配置。这是通过在composer.json的extra部分定义一个octris/assets命名空间来完成的。

子包

定义您想要的任意多个源。以下示例将子包内的目录映射到源键

js => /libsjs
css => /styles

目录必须定义为相对于子包根目录的相对路径。

...
"extra": {
    "octris/assets": {
        "source": {
            "js": "libsjs",
            "css": "styles"
        }
    }
},
...

主包

在主包中,源键可以映射到(目标)目录,在主包中。目录必须定义为相对于主包根目录的相对路径。资源管理器在运行时会创建必要的目录。

"extra": {
    "octris/assets": {
        "target": {
            "js": "vendor_assets/js",
            "css": "vendor_assets/css",
            "img": "host/vendor_assets"
        }
    }
},

资源源目录将链接到目标目录。

例如,如果子包的名称是octris/assetsdemo,则上述配置将在主包中创建以下符号链接

MAIN_PKG_ROOT/vendor_assets/css/octris/assetsdemo -> MAIN_PKG_ROOT/vendor/octris/assetsdemo/styles
MAIN_PKG_ROOT/vendor_assets/js/octris/assetsdemo -> MAIN_PKG_ROOT/vendor/octris/assetsdemo/libsjs

应用程序配置

为了使用octris PHP框架的模板编译器管理资源,可能需要额外的配置。打开您的octris Web项目的etc/global.php文件,并为模板引擎配置附加路径

    $tpl->addPostprocessor(
        new \Octris\Core\Tpl\Postprocess\CombineJs(
-           [ '/libsjs/' => OCTRIS_APP_BASE . '/libsjs/' ],
+           [
+               '/libsjs/' => OCTRIS_APP_BASE . '/libsjs/',
+               '/vendor_js/' => OCTRIS_APP_BASE . '/vendor_assets/js/'
+           ],
            OCTRIS_APP_BASE . '/host/libsjs/'
        )
    );
    $tpl->addPostprocessor(
        new \Octris\Core\Tpl\Postprocess\CombineCss(
-           [ '/styles/' => OCTRIS_APP_BASE . '/styles/' ],
+           [
+               '/styles/' => OCTRIS_APP_BASE . '/styles/' ,
+               '/vendor_css/' => OCTRIS_APP_BASE . '/vendor_assets/css/'
+           ],
            OCTRIS_APP_BASE . '/host/styles/'
        )
    );

可以通过指定配置的附加根路径来访问新的资源。

示例

<script src="/vendor_js/octris/assetsdemo/foo.js"></script>