当前位置: 首页 > news >正文

wordpress wp-config.php有强大seo功能的wordpress模板

wordpress wp-config.php,有强大seo功能的wordpress模板,国外优惠卷网站怎么做,帮别人做网站违法吗本文主要说明Setting的实现以及Mail这个功能模块如何使用Setting. 首先区分一下ABP中的Setting和Configuration。 Setting一般用于需要通过外部配置文件#xff08;或数据库#xff09;设置的简单类型数据#xff08;一般就是字符串#xff09;#xff0c;比如SMTP HOST.…本文主要说明Setting的实现以及Mail这个功能模块如何使用Setting. 首先区分一下ABP中的Setting和Configuration。 Setting一般用于需要通过外部配置文件或数据库设置的简单类型数据一般就是字符串比如SMTP HOST. Configuration一般只需要通过内部代码完成的配置一般用于设置复杂类型的数据。 目前Abp在setting 这个功能模块只能从配置文件读取设置无法从其他source比如数据库读取设置。也可以自定义SettingStore然后注入到ABP中来实现从其他Source读取设置(非本文重点)。 Setting如何实现的 首先我们要定义一个Setting也就是说我们需要设置什么 这个就是SettingDefinition。  SettingDefinition/SettingDefinitionGroup 用于定义Setting。不同的Name标识不同的Setting。假如要配置SMTP HOST那么就可以定义一个nameAbp.Net.Mail.Smtp.Host 的SettingDefinition。注意 Name和DefaultValue必须要的属性其他都是辅助属性。SettingDefinitionGroup用于给SettingDefinition分组Abp底层框架似乎没有真正使用过这个类。 下面这个图说明SettingDefinition/SettingDefinitionGroup定义了哪些属性及他们的关系。 SettingScopes这是一个标注了Flags特性的枚举类型表示setting的应用范围。 SettingDefinitionProviderContext上下文类一般用于封装方法间调用需要传递的参数。目前来说只是个空类没有实际作用。 SettingProvider: 为具体的功能模块所需的设置定义SettingDefinition,并且以数组的形式返回。使用SettingProvider定义SettingDefinition的是准确方式。 那么Setting定义好以后如何为其设置实际需要的value呢目前可以在从web.config中设置。目前有EmailSettingProvider用于提供SMTP的设置NotificationSettingProviderLocalizationSettingProvider还有ClearCacheSettingProvider。 SettingsConfiguration /ISettingsConfiguration用于集中化设置和管理SettingProvider的对象。其封装了一个ITypeListSettingProvider Providers的集合类。实际项目中可以通过Configuration.Setting来获取ISettingsConfiguration实例然后将自定义的SettingProvider添加到SettingsConfiguration 对象中需要在模块的PreInitialize方法完成这个动作。 ISettingDefinitionManager/SettingDefinitionManager: 主要完成注册到ABP中的SettingDefinition初始化。 首先通过ISettingsConfiguration实例获取setting providers集合然后在Initialize方法中通过setting providers获取SettingDefinition的数组。并将其保存在Dictionary中其key就是SettingDefinition的name. ISettingDefinitionManager的Initialize方法是在AbpKernelModule的PostInitialize方法执行的时候被调用。 上面接口/类直接的关系图 上面解释了ABP是如何定义/管理一个Setting. 下面解释下ABP是如何使用Setting的。 ISettingValue/SettingValueObject:代表setting的键值对。Setting的具体值当然在外部Config中然而在代码中是通过ISettingValue来封装的。 SettingManager:通过ISettingStore获取或更改Setting的值SettingManager并不是每次调用ISettingStore去读取设置而是在第一读取的时候就将结果缓存起来。如下代码所示 定义缓存对象 读入缓存 SettingInfo封装了应用于user/tenant的setting值 ISettingStore这个接口定义了相关方法用于从数据源读取和更改setting值。 这些方法以SettingInfo类型作为方法的输入和输出参数。 DefaultConfigSettingStoreABP中唯一实现了ISettingStore的类只用于从配置文件读取setting,修改是不支持的。ABP.Zero中有另外一个支持CRUD的实现。 下图是上面接口及类的关系图 下面以Mail功能的实现来说明如何使用Setting EmailSettingNames/Smtp: 封装SMTP设置的信息。也就是说定义了一些常量用作setting的name. 比如Host就是“Abp.Net.Mail.Smtp.Host”所以在web.config就要配置一项key是“Abp.Net.Mail.Smtp.Host”的配置项。 EmailSettingProvider继承自SettingProvider, 将SMTP的各项设置封装成SettingDefinition并以数组形式返回。 ISmtpEmailSenderConfiguration/IEmailSenderConfiguration定义了获取EmailSettingNames中定义的设置的接口。 EmailSenderConfiguration/SmtpEmailSenderConfiguration: 实现上面两个接口通过IsettingManager的实例读取设置 IEmailSender/ISmtpEmailSender/EmailSenderBase/SmtpEmailSender: 用于发送邮件。 最后照旧图示他们之间的关系。 返回ABP源码分析系列文章目录 Q一个设置配置怎么搞的这么复杂。。 A我想这应该是设计中严格遵循单一职责原则的必然结果大量细小的类和看似复杂的关系。 Q请问楼主最后的代码图是怎么生成的呢插件还是vs自带的 AVS 自带的企业版和旗舰版有 SettingDefinitionProviderContext 提供上下文可以通过上下文修改框架设定或自定义模块的设定 例如 public override IEnumerableSettingDefinition GetSettingDefinitions(SettingDefinitionProviderContext context) { context.Manager.GetSettingDefinition(LocalizationSettingNames.DefaultLanguage).DefaultValue “zh-cn” }
http://www.zqtcl.cn/news/138622/

相关文章:

  • 网站外链建设的15个小技巧中国农业建设中心网站
  • 交易平台网站怎么做wordpress 置顶 函数
  • 义乌市场官方网站jsp做就业网站
  • 推荐网站在线看兄弟们企业概况简介
  • 软装设计方案网站网站制作排名优化
  • 网站前端模板专业建站报价
  • 站长工具星空传媒怎么做游戏网站编辑
  • 大兴手机网站建设深圳小程序开发公司
  • c 大型网站开发案例电销系统线路
  • 鸿扬家装网站建设谈谈对seo的理解
  • 七米网站建设做网站也分内存大小的吗
  • 丝足网站的建设南宁关键词排名公司
  • 上饶商城网站建设亚马逊海外购官方网
  • 做网站代理商好赚吗高端品牌男鞋有哪些
  • 农产品网站建设及优化项目商务网站建设 视频
  • 北京兼职做网站建设百度app平台
  • 网站建设头部代码网站怎么做咨询
  • 网站运营 网站建设北京公司网站制作要多少钱
  • 郑州看妇科最好的医院是哪里南宁百度seo软件
  • 深圳市住房与建设局实名制网站手机网站打不开被拦截怎么办
  • 公司做网站的价格几千元wordpress 修改页脚
  • 专业网站建设公司在线咨询宁波网站推广公司价格
  • 网站搭建系统都有哪些丽水网站开发
  • 网站设计包含哪些技术外行怎么做网站
  • 网站建设运营知识推广软文平台
  • 营销型网站建设用途网站 文件夹结构
  • 制作网站建设策划方案cosy主题wordpress
  • 网站建设服务联享科技net和cn哪个做网站好
  • 深圳网站制作公司哪家好艺考培训学校
  • 潍坊网站的公司电话html网站开发基础