<commit_before><?php

namespace qeephp\storage;

abstract class BaseModel implements IStorageDefine
{
    /**
     * 指示模型对象实例是否来自于存储源
     *
     * @var bool
     * @internal
     */
    public $__is_new = true;

    /**
     * 对象实例从存储服务中读取出来时的值
     *
     * @var array
     * @internal
     */
    public $__props = array();

    /**
     * 改动过的属性值
     *
     * @var array
     * @internal
     */
    public $__changes = array();

    /**
     * 返回模型的主键值，如果有多个主键，则返回包含多个主键的数组
     *
     * @return mixed
     */
    function id()
    {
        $idname = static::meta()->idname;
        if (!is_array($idname)) return $this->$idname;
        $id = array();
        foreach ($idname as $name)
        {
            $id[$name] = $this->$name;
        }
        return $id;
    }

    /**
     * 指示模型对象实例是否来自于存储源
     *
     * 如果模型对象实例是通过 find*() 方法获得的，则 is_new() 返回 false，否则返回 true。<commit_msg>将 __is_new, __props 和 __changes 属性改为 private<commit_after><?php

namespace qeephp\storage;

abstract class BaseModel implements IStorageDefine
{
    /**
     * 指示模型对象实例是否来自于存储源
     *
     * @var bool
     * @internal
     */
    private $__is_new = true;

    /**
     * 对象实例从存储服务中读取出来时的值
     *
     * @var array
     * @internal
     */
    private $__props = array();

    /**
     * 改动过的属性值
     *
     * @var array
     * @internal
     */
    private $__changes = array();

    /**
     * 返回模型的主键值，如果有多个主键，则返回包含多个主键的数组
     *
     * @return mixed
     */
    function id()
    {
        $idname = static::meta()->idname;
        if (!is_array($idname)) return $this->$idname;
        $id = array();
        foreach ($idname as $name)
        {
            $id[$name] = $this->$name;
        }
        return $id;
    }

    /**
     * 指示模型对象实例是否来自于存储源
     *
     * 如果模型对象实例是通过 find*() 方法获得的，则 is_new() 返回 false，否则返回 true。
{'fraction_non_alphanumeric': 0.1387061403508772, 'fraction_numerical': 0.0, 'mean_word_length': 1.6877761413843888, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 9, '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': '2349297', 'n_tokens_mistral': 774, 'n_tokens_neox': 798, 'n_words': 121}