承接 alhimik1986/yii2_js_view_module 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

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 我们能提供哪些服务?
定制开发 / 二次开发

基于 alhimik1986/yii2_js_view_module 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 533
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 12
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: JavaScript

其他信息

  • 授权协议: MIT
  • 更新时间: 2016-09-24