alhimik1986/yii2_js_view_module
Composer 安装命令:
composer require alhimik1986/yii2_js_view_module
包简介
The module allows you insert to your page most used javascript-codes with specified presets.
README 文档
README
Вспомогательный модуль для yii2-crud-module. Позволяет подгружать javascript-плагины с заданными параметрами. По своему поведению напоминает виджеты, но отличается тем, что, в отличие от виджета, она не выводит html-код, а только подгружает javascript-файлы и javascript-вьюшку с заданными параметрами.
Рассмотрим на примере календарика datepicker (модуля jquery-ui). Подгружать его через виджеты требует больше кода, а если виджетов (например, таких же однотипных календариков или, вообще, подобных) много, то это может сказаться на производительности. Поэтому приходит мысль задать календарикам один класс (например .ui-datepicker) и проинициировать все элементы командой $('.ui-datepicker').datepicker(); Теперь в голову приходит мысль, что мы не хотим для этого использовать виджет, а хотим проделать это во вьюшке, но тут опять выползает проблема: вьюшку нужно поместить в одно общее место и вызывать ее из разных модулей фреймворка, указывая соответствующие параметры, например, селектор '.ui-datepicker' и параметры календарика { dateFormat: 'dd-mm-yy' }. Так вот, для этого и нужен yii2-js-view-module.
Пример создания собственного js_view
В файле components/JSPlugins.php находятся примеры вызова js-вьюшек, заключенные в комментарий. Большинство из них отсутствют , ибо они были использованы в моем прошлом проекте, но я оставил их, т.к. они служат отличным примером того, как должны вызываться js-вьюшки. Вот пример:
Yii::$app->view->registerJs(alhimik1986\yii2_js_view_module\components\JSPlugins::includePlugins([
'formatter' => [
[
'selector' => '.date-formatter',
'options' => [
'pattern' => '{{D9}}.{{M9}}.{{9999}}',
],
],
[
'selector' => '.credit-card-formatter',
'options' => [
'pattern' => '{{9999}}-{{9999}}-{{9999}}-{{9999}}',
],
]
],
'ajaxTable' => [ // Подключить вспомогательные скрипты для поиска в ajax-таблице
[
'tbl_selector' => '#ajax-table', // Селектор ajax-таблицы для поиска
'search_url' => \yii\helpers\Url::to(['search']), // url-адрес, куда отправлять искомые данные
'search_request_type' => 'post', // Тип запроса при поиске в таблице
'search_on_change_selector' => '.search-on-change', // Селектор элементов, при изменении или нажатии клавиш которых осуществлять поиск
'search_on_change_dateSelector' => '.from-date, .to-date', // Селектор элементов, при изменении которых осуществлять поиск
'tooltip_selector' => '', // Селектор для всплывающей подсказки при обновлении ajax-таблицы
'loading_img' => '', // url-адрес индикатора загрузки
'error_selector' = '#errors', // Место, куда будут выводиться нестандартные ошибки валидации
'ajaxDataCallBack' => 'js:function(data){return data;}', // Пост-обработка данных для поиска перед отправкой ajax-запроса (например, чтобы втиснуть в поиск диапазон дат from_date и to_date)
'afterSuccessCallBack' => 'js:function(data){}', // Дополнительные операции при успешном запросе (в поиске)
],
],
]));
Здесь ключи массива: "formatter" и "ajaxTable" - названия файлов вьюшки, они хранятся в папке views/jsPlugins. Значения массива - это параметры, передаваемые в соответствующую вьюшку. Заходим в папку views/jsPlugins, в ней названия вьюшек имеют префикс "_" (нижнее подчеркивание), покаывая этим, что она является частичной. Хороший и простой пример использования виден во вьюшке _formatter.php ПАРАМЕТРЫ, ПЕРЕДАВАЕМЫЕ ВО ВЬЮШКУ ЗАКЛЮЧЕНЫ В ПЕРЕМЕННОЙ "$plugin_params".
Пока есть один недостаток: хранить кастомные вьюшки в папке "vendor" - не совсем правильно, поэтому этот модуль будет лишь вспомогательным модулем для yii2-crud-module.
УСТАНОВКА:
Скачивается с помощью composer. В папке приложения в файле composer.json дописать строчку:
"require": {
"alhimik1986/yii2_js_view_module": "^1.0"
},
или в командой строке ввести:
$ composer require alhimik1986/yii2_js_view_module
alhimik1986/yii2_js_view_module 适用场景与选型建议
alhimik1986/yii2_js_view_module 是一款 基于 JavaScript 开发的 Composer 扩展包,目前已累计 533 次下载、GitHub Stars 达 0, 最近一次更新时间为 2016 年 09 月 24 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「module」 「yii2」 「js_view」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 alhimik1986/yii2_js_view_module 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 alhimik1986/yii2_js_view_module 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 alhimik1986/yii2_js_view_module 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A custom URL rule class for Yii 2 which allows to create translated URL rules
bootstrap select field module implementing http://silviomoreto.github.io/bootstrap-select/
SCEditor, a lightweight WYSIWYG BBCode & HTML editor extension for Yii 2.0 Framework
Yii2 module to manage website content. Kind of a CMS...
Codeurx Modular is simply a package for Laravel to help you create and manage modules.
Redirect all not authenticated web user to login page.
统计信息
- 总下载量: 533
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 12
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2016-09-24