it-for-free/php-simple-assets
Composer 安装命令:
composer require it-for-free/php-simple-assets
包简介
simple php asset management: copy assets (js, css etc) from vendor, support dependencies
关键字:
README 文档
README
publish assets (js, css etc) from vendor, support dependencies (inspired by yii2 assets)
Установка (Install)
Установка с помощью composer:
composer require it-for-free/php-simple-assets:~v0.0.1
(install via composer).
Использование (Usage)
it-for-free/php-simple-assets предоставляет два класса (it-for-free/php-simple-assets package supplies two classes):
SimpleAssetManager-- управляет зависимостями ассетов друг от друга и выводит подключенные файлы в html шаблон (manage assets dependencies and print added files into html template)SimpleAsset-- базовый класс для описания ассетов (base class for asset definition)
Настройка SimpleAssetManager (ассета) (Configure Asset Manager)
Во время инициаллизации приложения (или до использования других возможностей данного пакета) установите путь к папке асстов (относительно корня сайта): (set base asset publish path relative to document root during your app init, or before any different usage of this package)
\ItForFree\SimpleAsset\SimpleAssetManager::$assetsPath = 'myassets/'; // default 'assets/'
-- эта директория должна быть доступной для записи
($assetsPath dir should be writable)
Создание пакета расурсов (ассета) (Asset declaration)
Определите пакет унаследовавшись от SimpleAsset
(define yoor new assets with js and html paths):
namespace application\models; use ItForFree\SimpleAsset\SimpleAsset; /** * TestAsset -- пример описания пакета ресурсов (ассета) * * @author vedro-compota */ class BaseAsset extends SimpleAsset { public $basePath = 'JS/'; // from doc root public $js = [ 'myjs/basejs.js' // relative from $basePath path ]; public $css = [ 'myjs/css/basecss.css' // relative from $basePath path ]; }
Также можно указать ассет с зависимостью от другого ассета, для этого заполните свойство-массив
$needs полными именами классов ассетов, от которых зависит данный
(You can also define dependencies from other packages by setting $needs array property):
use ItForFree\SimpleAsset\SimpleAsset; use application\models\BaseAsset; /** * TestAsset -- пример описания пакета ресурсов (ассета) * * @author vedro-compota */ class TestAsset extends SimpleAsset { public $basePath = 'JS/'; public $js = [ 'myjs/test1.js', 'myjs/test2222.js' ]; public $css = [ 'myjs/css/my.css' ]; public $needs = [BaseAsset::class]; }
Далее в любом месте кода, например в представлении зарегистрируем ассет (Then in any place in your code register any asset you
need on page by call ::add()):
<?php use application\models\TestAsset; use ItForFree\SimpleAsset\SimpleAssetManager; TestAsset::add(); ?> <div class="row"> <div class="col "> <p class="lead"> Тестируем... </p> Js: <pre><?php SimpleAssetManager::printJs() ?></pre> Css: <pre><?php SimpleAssetManager::printCss() ?></pre> </div> </div>
Это даст нам (We will get):
Js: <pre><script type="text/javascript" src="/assets/88bdd3ea85/1542210511/js/basejs.js"></script> <script type="text/javascript" src="/assets/0a23d877c3/1542203580/js/test1.js"></script> <script type="text/javascript" src="/assets/0a23d877c3/1542203580/js/test2222.js"></script> </pre> Css: <pre><link rel="stylesheet" type="text/css" href="/assets/88bdd3ea85/1542210511/css/basecss.css"> <link rel="stylesheet" type="text/css" href="/assets/0a23d877c3/1542203580/css/my.css"> </pre>
-- Как видно, SimpleAssetManager может выводить все зарегистрированные JS и CSS в нужном порядке.
(As you can see SimpleAssetManager can print JS or Css like HTML resource tags)
javascript source maps
Вы можете добавлять пути к файлам source map (они должны заканчиваться на .map) в свойство public $js вашего класса-ассета.
(You can add paths to source map files (they should end with .map) in your asset class public $js array property.)
Тестирование
С помощью кодесепшн:
cept run unit
Связанные пакеты (Other related packages)
Смотрите компоненты SimpleMVC (Look at SimpleMVC components): https://github.com/it-for-free/SimpleMVC#%D0%BF%D0%BE%D0%BB%D0%B5%D0%B7%D0%BD%D1%8B%D0%B5-%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D1%8B
ToDo
- Если некий js-файл уже лежал в папке ассета (vendor) до публикации, потом не был опубликован с другими файлами этого ассета, а затем был добавлен в список, то файл этот скопирован не будет -- проблема решена, НО необходимо переписать мок-тест на стиль, который использует клиенский код.
it-for-free/php-simple-assets 适用场景与选型建议
it-for-free/php-simple-assets 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 25 次下载、GitHub Stars 达 2, 最近一次更新时间为 2018 年 11 月 14 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「php」 「assets」 「clone」 「vendor」 「copy」 「assets manager」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 it-for-free/php-simple-assets 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 it-for-free/php-simple-assets 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 it-for-free/php-simple-assets 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Asset Management for PHP
Caching and compression for Twig assets (JavaScript and CSS).
Traits gathering fluent syntax common methods
A fork of the great myclabs/DeepCopy bundle for Symfony
Tool for loading or deploying CSS and JS files into web pages
Collection of tools to use the full power of the Enyalius framework
统计信息
- 总下载量: 25
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 10
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2018-11-14