<commit_before><?php
namespace lo\core\inputs;

use yii\base\InvalidConfigException;
use yii\base\Object;
use yii\widgets\ActiveForm;
use \lo\core\db\fields\Field;

/**
 * Class BaseInput
 * Базовый класс полей ввода форм
 * @package lo\core\inputs
 * @author <NAME> <<EMAIL>>
 */
abstract class BaseInput extends Object
{
    /**
     * @var Field поле модели
     */
    public $modelField;

    /**
     * @var array html атрибуты
     */
    public $options = [];

    /**
     * @var array парамеиры виджета
     */
    public $widgetOptions = [];


    /**
     * Формирование Html кода поля для вывода в форме
     * @param ActiveForm $form объект форма
     * @param array $options массив html атрибутов поля
     * @param bool|int $index инднкс модели при табличном вводе
     * @return string
     */
    abstract public function renderInput(ActiveForm $form, Array $options = [], $index = false);

    /**
     * @inheritdoc
     * @throws InvalidConfigException
     */
    public function init()
    {
        if (empty($this->modelField) OR !$this->modelField instanceof Field)
            throw new InvalidConfigException("Property 'modelField' must be instance of " . Field::className());
    }

    /**
     * Возвращает имя атрибута для поля формы
     * @param bool|int $index индекс модели при табличном вводе
     * @param string $attr атрибут<commit_msg>baseField<commit_after><?php
namespace lo\core\inputs;

use yii\base\InvalidConfigException;
use yii\base\Object;
use yii\widgets\ActiveForm;
use \lo\core\db\fields\BaseField;

/**
 * Class BaseInput
 * Базовый класс полей ввода форм
 * @package lo\core\inputs
 * @author <NAME> <<EMAIL>.ru>
 */
abstract class BaseInput extends Object
{
    /**
     * @var BaseField поле модели
     */
    public $modelField;

    /**
     * @var array html атрибуты
     */
    public $options = [];

    /**
     * @var array парамеиры виджета
     */
    public $widgetOptions = [];


    /**
     * Формирование Html кода поля для вывода в форме
     * @param ActiveForm $form объект форма
     * @param array $options массив html атрибутов поля
     * @param bool|int $index инднкс модели при табличном вводе
     * @return string
     */
    abstract public function renderInput(ActiveForm $form, Array $options = [], $index = false);

    /**
     * @inheritdoc
     * @throws InvalidConfigException
     */
    public function init()
    {
        if (empty($this->modelField) OR !$this->modelField instanceof BaseField)
            throw new InvalidConfigException("Property 'modelField' must be instance of " . BaseField::class);
    }

    /**
     * Возвращает имя атрибута для поля формы
     * @param bool|int $index индекс модели при табличном вводе
     * @param string $attr атрибут
{'fraction_non_alphanumeric': 0.11046722202100688, 'fraction_numerical': 0.0, 'mean_word_length': 2.7123655913978495, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 13, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1275004', 'n_tokens_mistral': 896, 'n_tokens_neox': 943, 'n_words': 247}