the_it_nerd/module-core

IT极客 - Magento 2 核心模块。

安装次数: 3,340

依赖关系: 3

推荐者: 0

安全性: 0

星标: 2

关注者: 1

分支: 3

开放问题: 1

语言:JavaScript

类型:magento2-module

0.0.5 2024-09-25 14:46 UTC

This package is auto-updated.

Last update: 2024-09-25 14:49:15 UTC


README

此模块是The IT Nerd社区开源模块的基础。

安装

通过composer安装

composer require the_it_nerd/module-core

功能

此模块作为其他模块的基础,提供以下功能:

  • 管理员界面中的"The IT Nerd"菜单
  • 管理员界面中的"The IT Nerd"配置选项卡
  • 在前端实现掩码库
  • 模型以简化对象和变量的缓存使用

如何使用掩码库

掩码库基于Igor Escobar jQuery Mask库。

通过x-mage-init实现

此实现考虑了使用Magento 2 x-mage-init的默认初始化方式

<script type="text/x-magento-init">
{
    "#telephone": {
        "TheITNerd_Core/js/inputMask": {
            "mask": "(00) 0000-00000"
        }
    }
}
</script>

Knockout数据绑定

此模式可以在使用data-bind方法的Knockout phtmls或模板html文件中使用

<input data-bind="mageInit:{ 'TheITNerd_Core/js/inputMask': {'mask': '(00) 0000-00000'}}"/>

通过requireJS实现

当需要通过JS文件使用掩码库实现时

define([
    'jquery',
    'TheITNerd_Core/js/inputMask'
], function($) {
    'use strict';

    $.widget('theitnerd.test', {
        options: {
            mask: '00000-000',
        },

        _create: function() {
            this.initMask();
        },

        /**
         * Implements Mask on field
         * @returns {theitnerd.test}
         */
        initMask: function() {
            this.element.inputmask({mask: this.options.mask});

            return this;
        }
    });

    return $.theitnerd.test;
});

如何使用缓存模型

模型缓存简化了使用Magento2后端标准缓存实现的过程

如何保存缓存

在缓存客户端,我们有save方法,考虑以下参数。

如何恢复缓存

Load方法简化了加载缓存中保存的值的过程

实现示例

use TheITNerd\Core\Model\CacheClient; 

class TestClass {

    /**
     * @param CacheClient   $cacheClient
     */
    public function __construct(
        private CacheClient   $cacheClient
    )
    {
    }    
    
    public function getData(string $key): array
    {
        //generate an unique cache key
        $cacheKey = md5($key);
        
        if($data = $this->cacheClient->load($cacheKey, 'website')) {
            return $data;
        }
        
        ...
        
        $data = array[]
        
        $this->cacheClient->save($cacheKey, $data, ['tag1, 'tag2'], 86400, 'website');
        
        return $data;
        
    }
    
    ...
}