andrewdanilov/yii2-helpers 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

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

andrewdanilov/yii2-helpers

Composer 安装命令:

composer require andrewdanilov/yii2-helpers

包简介

Various helpers

README 文档

README

Various helpers

Installation

The preferred way to install this extension is through composer.

Either run

composer require andrewdanilov/yii2-helpers "~1.0.0"

or add

"andrewdanilov/yii2-helpers": "~1.0.0"

to the require section of your composer.json file.

Usage

ModelHelper

ModelHelper::cleanLoadedValues()

Обрабатывает массив с загружаемыми в модель значениями атрибутов по заданным правилам. Правила очистки задаются для конкретных атрибутов в массиве $attribute_rules:

$attribute_rules = [
  'name' => [ModelHelper::ATTR_RULE_STRIP_TAGS],
  'text' => [ModelHelper::ATTR_RULE_CLEAN_JS, ModelHelper::ATTR_RULE_STRIP_TAGS],
  '<attribute>' => [<attr_rule1>, <attr_rule2>, <attr_rule3>, ...],
  '*' => [<attr_rule4>, ...], // для всех атрибутов, даже если для них уже применялось правило
  '?' => [<attr_rule5>, ...], // только для атрибутов, для которых не указано правило
];

Набор правил применяется, если значение элемента массива $values соответствующего атрибуту является строкой. Если значение - массив, то набор правил будет рекурсивно применен ко всем вложенным строковым значениям элементов массива, независимо от имен их ключей. Глубина вложенности неограничена.

Метод ModelHelper::cleanLoadedValues() можно применять в модели, например, переписав базовый метод \yii\base\Model::setAttributes() следующим образом:

public function setAttributes($values, $safeOnly = true)
{
    $values = ModelHelper::cleanLoadedValues($values, [
        'title' => [ModelHelper::ATTR_RULE_STRIP_TAGS],
        'text' => [ModelHelper::ATTR_RULE_CLEAN_JS],
    ]);
    parent::setAttributes($values, $safeOnly);
}

Правило ModelHelper::ATTR_RULE_CLEAN_JS удалит из значения атрибута все теги <script> как самозакрывающиеся, так и обычные, как содержащие скрипт в теле тега, так и в html-атрибуте src.

Правило ModelHelper::ATTR_RULE_STRIP_TAGS удалит из значения атрибута все html-теги, применив к нему функцию strip_tags.

Правило ModelHelper::ATTR_RULE_HTML_SPECIAL_CHARS заменит в значении атрибута все html сущности на их &-эквиваленты с помощью функции htmlspecialchars().

ModelHelper::getFirstError()

Возвращает первую ошибку, возникшую в модели в виде строки или пустую строку, если ошибок нет.

$model = new MyModel();
$model->some_attr = 'some_wrong_value';
$model->validate();
echo \andrewdanilov\helpers\ModelHelper::getFirstError($model);

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2021-03-05

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固